如果一个工作表的单元格内容引用了其他工作表的单元格的内容,这时如果将这个工作表的内容全部拷贝到另外一个文件的工作表中,引用的公式会改变,引用地址变为绝对地址,还是指向源文件,例如:='C:\Users\YANG\Desktop\新建文件夹\[a.xlsx]Sheet1'!A4
用vba 调用 javascript 脚本去掉引用,代码如下
<pre name="code" class="java">//返回当前激活的工作表所有选中的单元格
function getSelectionCells(workbook) {
var cells = [];
// $H$18,$M$13,$O$27,$R$19:$T$29
var address = workbook.application.selection.address;
var addresses = address.split(",");
for(var i=0; i<addresses.length; i++) {
var add = addresses[i];
var isRegion = add.indexOf(":");
if(isRegion==-1) { //是单独的单元格
cells.push(workbook.ActiveSheet.range(add));
} else { //是一块区域
var regExpSelectAll = /^\$[0-9]+:\$[0-9]+$/g;
var isSelectAll = regExpSelectAll.test(add);
if(isSelectAll) {
continue;
}
var regions = add.split