Копировать значения из одного столбца в другой в Google Scripts - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть таблица данных, которая извлекает информацию из серии VLOOKUP на страницах Google.Я постоянно редактирую источник, который меняет мою таблицу данных.Мне нужен код скриптов 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   

1 Ответ

0 голосов
/ 23 декабря 2018

Попробуйте:

/*
 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...