我有一个数据表,可从Google表格中的一系列VLOOKUP中提取其信息。我一直在编辑更改数据表的源。我需要一个Google脚本代码,该代码将受公式影响的单元格复制到不会受到影响的另一列。我尝试一次复制所有内容以进行移动,但是第二次激活它时,现在空白的单元格覆盖了以前的功能,使我能够使用VBA成功完成此任务,但是我无法弄清楚过渡。这是我到目前为止的内容:
function CopyCells() {
var sheet2 = SpreadsheetApp.getActive().getSheetByName('Records');
var loc = sheet2.getRange("C2:C126").getValues();
var taget_sheet = sheet2.getRange("D2:D126");
for(i = 1;i == "Present";i++){ i.copyTo("target_sheet")}
}
我的VBA代码:
Dim ColERange As Range
Dim ColFRange As Range
Set ColERange = Range("E1:E100")
Set ColFRange = Range("F1:F100")
Dim Cell As Range
For Each Cell In ColERange
If Cell.Value = "Present"
Then Cell.Offset(0, 1).Value = Cell.Value
ElseIf Cell.Value = "Absent"
Then Cell.Offset(0, 1).Value = Cell.Value
ElseIf Cell.Value = ""
Then Cell.Offset(0, 1).Value = Cell.Value
End If
Next Cell
答案 0 :(得分:0)
尝试一下:
/*
Dim ColERange As Range
Dim ColFRange As Range
Set ColERange = Range("E1:E100")
Set ColFRange = Range("F1:F100")
Dim Cell As Range
For Each Cell In ColERange
If Cell.Value = "Present"
Then Cell.Offset(0, 1).Value = Cell.Value
ElseIf Cell.Value = "Absent"
Then Cell.Offset(0, 1).Value = Cell.Value
ElseIf Cell.Value = ""
Then Cell.Offset(0, 1).Value = Cell.Value
End If
Next Cell
*/
我认为此版本是您想要的版本,因为只需更改一项,就可以更改要复制到的列。
function CopyCells1(col) {
var col=col || 1;
var sh=SpreadsheetApp.getActive().getSheetByName('Records');
var rg1=sh.getRange("C2:C126");
var vA=rg1.getValues();
var rg2=rg1.offset(0, col);//Changing the column offset allows you to gain access to the other columns. Note: it can be negative.
var vB=rg2.getValues();
for(var i=0;i<vA.length;i++){
if((vA[i][0]=='Present')||(vA[i][0]=='Absent')){
vA[i][0]=vB[i][0];
}
}
rg2.setValues(vB);
}