Excel VBA:在多个工作表中插入新行

时间:2014-12-17 15:59:17

标签: excel vba excel-vba

我有一个userform,用户输入数据,然后单击Add按钮。 然后,VBA创建一个新行,并将用户的数据输入该行。 这工作正常,但我也想在另一张表中添加一个新行,这就是我被卡住的地方。

这是我的代码:

Dim i As String
Dim j As String
Dim k As String
Dim m As String
Dim n As String
j = XIDBox.Value
i = OrgNameBox.Value
k = ContactNameBox.Value
m = PhoneBox.Value
n = EmailBox.Value

dstRw = Sheets("Input Data").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Input Data").Cells(dstRw, 1).Value = i
Sheets("Input Data").Cells(dstRw, 2).Value = j
Sheets("Input Data").Cells(dstRw, 4).Value = k
Sheets("Input Data").Cells(dstRw, 6).Value = m
Sheets("Input Data").Cells(dstRw, 5).Value = n

'Here I want a code that inserts a blank row just as dstRw does above but in a different sheet.

2 个答案:

答案 0 :(得分:0)

这个过程非常类似于你现有的过程。

'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 :(得分:0)

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

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

<强>试验:

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