Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google脚本或VBA-输入输入值时插入行(Excel)_Javascript_Vba_Excel_Google Sheets - Fatal编程技术网

Javascript Google脚本或VBA-输入输入值时插入行(Excel)

Javascript Google脚本或VBA-输入输入值时插入行(Excel),javascript,vba,excel,google-sheets,Javascript,Vba,Excel,Google Sheets,我正在使用带有谷歌脚本的谷歌工作表,我希望在用户输入数字时插入行,而无需在脚本编辑器上运行代码。因此,如果我更改所选单元格上的值,代码应该自动运行,这是不会发生的。这是我目前的代码: function PopulateColumn() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; for (i = 1; i<=SpreadsheetApp.getActiveSheet().

我正在使用带有谷歌脚本的谷歌工作表,我希望在用户输入数字时插入行,而无需在脚本编辑器上运行代码。因此,如果我更改所选单元格上的值,代码应该自动运行,这是不会发生的。这是我目前的代码:

function PopulateColumn() { 
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
for (i = 1; i<=SpreadsheetApp.getActiveSheet().getRange(9,2).getValue(); i++) {
sheet.insertRowsAfter(11, SpreadsheetApp.getActiveSheet().getRange(9,2).getValue())
SpreadsheetApp.getActiveSheet().getRange(i+10,1).setValue('Arrangement ' + i + ':')
}
}
函数PopulateColumn(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];

对于(i=1;i都在单元格
B1
中输入,并填充列
A

Google脚本方法: 选择工具->脚本编辑器 注意,我没有在评论后更新GS脚本,因为似乎对此不感兴趣

function PopulateColumn() { 
  for (i = 1; i<=SpreadsheetApp.getActiveSheet().getRange(1,2).getValue(); i++) {
    SpreadsheetApp.getActiveSheet().getRange(i,1).setValue('Arrangement ' + i + ':')
  }
}
函数PopulateColumn(){

对于(i=1;i都在单元格
B1
中输入,并填充列
A

Google脚本方法: 选择工具->脚本编辑器 注意,我没有在评论后更新GS脚本,因为似乎对此不感兴趣

function PopulateColumn() { 
  for (i = 1; i<=SpreadsheetApp.getActiveSheet().getRange(1,2).getValue(); i++) {
    SpreadsheetApp.getActiveSheet().getRange(i,1).setValue('Arrangement ' + i + ':')
  }
}
函数PopulateColumn(){

对于(i=1;iYou可以用google脚本实现这一点。不需要excel Javascript?如何从单元格中获取值?我从未使用过google sheets,因此不知道这是否可行,但我会使用@Tom word。在VBA中,只需使用excel range.formula..即
Thisworkbook.Worksheets(“Sheet1”).range(“A1”).formula=“=SUM(A2:A5)“
你可以用谷歌脚本实现这一点。不需要ExcelIn Javascript?我如何从单元格中获取值?我从来没有使用过谷歌工作表,所以不知道这是否可行,但我会使用@Tom word。在VBA中,只需使用excel range.formula..即
此工作簿。工作表(“Sheet1”).range(“A1”).formula=“=SUM(A2:A5)”
VBA:谢谢您的帮助,但我不想在单元格上写入数据时覆盖数据。如何插入行?我可以在选择数字后立即运行代码,而不是每次单击编辑器上的“运行”吗?GS:表示无法从未定义(第2行)读取“范围”我已经更新了它以删除事件。GS会说,当您尝试调试事件时JS:谢谢,但会覆盖单元格上的数据,我如何插入行而不是覆盖写在这些单元格上的数据?VBA:无法理解在工作表对象中的含义…我应该在VBA编辑器中做什么?我从未使用过是的,很抱歉这么烦人!忽略事件驱动基的代码位。将代码粘贴到模块中(您可能需要插入一个)然后单击runVBA:感谢您的帮助,但我不想在单元格上写入数据时覆盖数据。如何插入行?我可以在选择数字后立即运行代码,而不是每次都单击编辑器上的“运行”吗?GS:表示无法从未定义中读取“范围”(第2行)我已经更新了它以删除事件。GS会说,当您尝试调试事件时JS:谢谢,但会覆盖单元格上的数据,我如何插入行而不是覆盖写在这些单元格上的数据?VBA:无法理解在工作表对象中的含义…我应该在VBA编辑器中做什么?我从未使用过是,很抱歉这么烦人!忽略事件驱动基的代码位。将代码粘贴到模块中(您可能需要插入一个),然后单击“运行”
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim StartingRow As Long
    Dim StartingArrangement As Long

    If Not Intersect(Target, Me.Cells(1, 2)) Is Nothing Then
        With Me
            StartingRow = .Cells(.Rows.Count, 1).End(xlUp).Row

            If StartingRow < 3 Then
                StartingRow = 2
            Else
                StartingArrangement = CLng(Trim(Replace(Replace(.Cells(StartingRow, 1), "Arrangement ", vbNullString), ":", vbNullString)))
            End If

            For i = 1 To .Cells(1, 2).Value2
                .Cells(StartingRow, 1).Offset(i, 0).Value2 = "Arrangement " & StartingArrangement + i & ":"
            Next i
        End With
    End If
End Sub