我使用Excel为计费系统生成报表,并且我想使用VBA来简化更新Excel的过程。我想要做的是从Mastersheets中的列(“A:F”)中复制,粘贴和追加信息,并根据名称在其各自的命名工作表中将它们分开。所有表从第4行开始。(第3行是标题)VBA复制excel工作表,追加特定列中的新行
所以我将进一步简化这个过程: 从一个新的Excel表开始,我想首先将所有数据从主表复制并粘贴到各自的命名工作表。完成后:
COPY,PASTE和APPEND(当主菜单发生更改时) 1.选择主菜单。 2.在主表格中,搜索现有工作表栏(A)以查询帐单号码(为了只允许更新现有数据的新帐单) 3.从列(“A:F”)复制并粘贴新帐单号码从每个命名工作表的最后一个空行开始命名工作表。 (我认为我已经在代码中定义了它,“乔治”表有一个问题,它没有穿过整个工作表,它停在某个行号)
我现在的问题是我不能使附加功能工作。复制和粘贴功能或多或少地完成。这是我迄今为止的代码。这是我现在制定的一切。任何帮助将不胜感激。
' COPY, PASTE AND APPEND
Sub Append()
Dim manager As String, lastrow As Long, i As Integer
Dim find As Range, bill As String
Set mastersheet = Sheet1
mastersheet.Select
bill = Sheet1.Range("A:A").Value
Do While Not bill = ""
Set find = Sheet1.Range("A:A").find(what:=bill, lookat:=xlValues, lookat:=xlWhole)
If find Is Nothing Then
lastrow = Cells(Rows.Count, 1).End(xlUp).row
For i = 2 To lastrow
If Cells(i, 2) = "JOHN" Then
Range(Cells(i, 1), Cells(i, 6)).copy
Sheet13.Select
Range("A300").End(xlUp).Offset(1, 0).PasteSpecial
mastersheet.Select
End If
Next i
For i = 2 To lastrow
If Cells(i, 2) = "CHARLIE" Then
Range(Cells(i, 1), Cells(i, 6)).copy
Sheet11.Select
Range("A300").End(xlUp).Offset(1, 0).PasteSpecial
mastersheet.Select
End If
Next i
For i = 2 To lastrow
If Cells(i, 2) = "GEORGE" Then
Range(Cells(i, 1), Cells(i, 6)).copy
Sheet12.Select
Range("A300").End(xlUp).Offset(1, 0).PasteSpecial
mastersheet.Select
End If
Next i
Else
Sheet1.Select
End If
Loop
End Sub
请问您在发布新贴之前是否已经发布过问题?如果他们怀疑你会这样做,那么任何人都不会做出回应。 – SJR
@SJR我的歉意。为了使事情更清楚,我编辑了我的问题。我不想把这些问题结合起来,因为我认为这会太长。感谢您的时间和耐心。 :) – Carmen