为什么尝试将数据从主表复制到多个工作表时会出现编译错误

为什么尝试将数据从主表复制到多个工作表时会出现编译错误

我对 VBA 和宏非常陌生,所以如果这很简单,我深表歉意。我找到了类似的帖子,但没有一个能够针对我的问题进行调整。我发现代码可以为工作簿中列表中的每个新条目创建一个新的工作表,效果很好。如果 BT 列中的值与新工作表的名称匹配,我想将主表上的每一行复制到上面宏中创建的相应选项卡中。我发现了以下代码,我以为我已经正确调整了它,但是运行它时出现“编译错误 - 未定义子函数或函数”。我的主表名为“final”,BT 列包含与其他工作表名称匹配的值。我对 -71 的理解是它是被引用列左侧的列数。

Sub copyPasteData()
 Dim strSourceSheet As String
 Dim strDestinationSheet As String
 Dim lastRow As Long

strSourceSheet = "final"

Sheets(strSourceSheet).Visible = True
 Sheets(strSourceSheet).Select

Range("BT3").Select
 Do While ActiveCell.Value <> ""
 strDestinationSheet = ActiveCell.Value
 ActiveCell.Offset(0, -71).Resize(1, ActiveCell.CurrentRegion.Columns.Count).Select
 Selection.Copy
 Sheets(strDestinationSheet).Visible = True
 Sheets(strDestinationSheet).Select
 lastRow = LastRowInOneColumn("A")
 Cells(lastRow + 1, 1).Select
 Selection.PasteSpecial xlPasteValues
 Application.CutCopyMode = False
 Sheets(strSourceSheet).Select
 ActiveCell.Offset(0, 2).Select
 ActiveCell.Offset(1, 0).Select
 Loop
 End Sub

每个月我都需要将新数据粘贴到主表上,并希望其他工作表也随之更改。非常感谢任何帮助,这将使我免于多次筛选并将数据复制粘贴到每个选项卡中。我使用了 2007 和 2010 标签,因为我必须能够在这两个标签中运行它。

答案1

lastRow = LastRowInOneColumn("A")
替换上面的行,我认为 LastRowInOneColumn 不是定义的函数,

lastRow = Sheets(strDestinationSheet).Range("A1").End(xlDown).Row
它给出 A 列的最后一行

相关内容