Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
Excel VBA:在多张图纸中插入新行_Vba_Excel - Fatal编程技术网

Excel VBA:在多张图纸中插入新行

Excel VBA:在多张图纸中插入新行,vba,excel,Vba,Excel,我有一个userform,用户在其中输入数据,然后单击Add按钮。 然后VBA创建一个新行,并将用户的数据输入该行。 这很好,但是我也想在不同的工作表中添加一个新行,这就是我遇到的问题 这是我的代码: 我像绳子一样暗 作为字符串的Dim j 调暗k为字符串 把m调成线 将n变暗为字符串 j=XIDBox.Value i=OrgNameBox.Value k=ContactNameBox.Value m=电话盒。值 n=EmailBox.Value dstRw=SheetsInput Data.

我有一个userform,用户在其中输入数据,然后单击Add按钮。 然后VBA创建一个新行,并将用户的数据输入该行。 这很好,但是我也想在不同的工作表中添加一个新行,这就是我遇到的问题

这是我的代码:

我像绳子一样暗 作为字符串的Dim j 调暗k为字符串 把m调成线 将n变暗为字符串 j=XIDBox.Value i=OrgNameBox.Value k=ContactNameBox.Value m=电话盒。值 n=EmailBox.Value dstRw=SheetsInput Data.RangeA&Rows.Count.EndxlUp.Row+1 SheetsInput Data.CellsdstRw,1.Value=i SheetsInput Data.CellsdstRw,2.值=j SheetsInput Data.CellsdstRw,4.值=k SheetsInput Data.CellsdstRw,6.值=m SheetsInput Data.CellsdstRw,5.值=n
'这里我想要一个代码,它可以像上面dstRw那样插入一个空行,但在不同的工作表中。这个过程与您现有的过程非常相似

'Here I want a code that inserts a blank row just as dstRw does above but in a different sheet.
Dim otherSheet As Worksheet
Set otherSheet = Sheets("Other Sheet Name")

' Insert as the last row.
Dim otherRow As Long
otherRow = otherSheet.Range("A" & Rows.Count).End(xlUp).Row + 1

' Now write the values.
otherSheet.Cells(otherRow, 1).Value = i
otherSheet.Cells(otherRow, 2).Value = j
otherSheet.Cells(otherRow, 4).Value = k
otherSheet.Cells(otherRow, 6).Value = m
otherSheet.Cells(otherRow, 5).Value = n

这适用于使用工作表数组的两个工作表。您可以通过以相同的方式向数组中添加项来扩展它。您也不需要将值存储为变量,因为对象的名称很小,您可以直接从源中设置单元格的值

这将查找每个图纸的最后一行,添加1,然后设置源对象中单元格的值。然后循环处理数组中的下一张图纸

测试:


您是否尝试过从此行dstRw=SheetsInput Data.RangeA&Rows.Count.EndxlUp.Row+1更改工作表引用并在底部再次添加它?是的,我尝试过,但它没有向工作表添加任何新行。您还需要更改行引用,并使用Jason在回答中指出的.Insert函数。是否尝试扩展该行表的范围?是的,我正在尝试扩展表的范围。我需要它来查找表中的最后一行,并在该行下方添加新行,然后输入数据。我相信在您的示例中有一行被引用了?感谢您的编辑,它现在正在按预期工作!
Sub ValueMove()

Dim dstRw As Long
Dim sheet(1) As String

    sheet(0) = "Input Data"
    sheet(1) = "Different Sheet"

    For s = 0 To 1

        dstRw = Sheets(sheet(s)).Range("A" & Rows.count).End(xlUp).row + 1

        Sheets(sheet(s)).Cells(dstRw, 1).Value = OrgNameBox.Value
        Sheets(sheet(s)).Cells(dstRw, 2).Value = XIDBox.Value
        Sheets(sheet(s)).Cells(dstRw, 4).Value = ContactNameBox.Value
        Sheets(sheet(s)).Cells(dstRw, 6).Value = PhoneBox.Value
        Sheets(sheet(s)).Cells(dstRw, 5).Value = EmailBox.Value
    Next s

End Sub