我有这个基本的代码来查找表中所需的列,并将它们复制到另一个工作表。我的问题是,每次我想修改它不复制&粘贴标题它返回错误。这是我的代码:
Sub CopyColumns()
Dim wsSource, wsResult As Worksheet
Dim Name, UniqueId, OperatingStatus As Long
Set wsSource = ThisWorkbook.Sheets("Source")
Set wsResult = ThisWorkbook.Sheets("Result")
Name = wsSource.Rows(1).Find("#BASEDATA#name").Column
UniqueId = wsSource.Rows(1).Find("#BASEDATA#uniqueId").Column
OperatingStatus = wsSource.Rows(1).Find("#BASEDATA#operatingStatus").Column
If Name <> 0 Then
wsSource.Columns(Name).Copy Destination:=wsResult.Columns(3)
End If
If UniqueId <> 0 Then
wsSource.Columns(UniqueId).Copy Destination:=wsResult.Columns(4)
End If
If OperatingStatus <> 0 Then
wsSource.Columns(OperatingStatus).Copy Destination:=wsResult.Columns(1)
End If
End Sub
有什么想法如何解决它?我尝试是这样复制使用偏移:If targetColName <> 0 Then
wsSource.Columns(targetColName).Offset(1, 0).Resize(wsSource.Rows.Count - 1).Copy _ Destination:=wsResult.Columns(3).Offset(1, 0)
它给出错误:应用程序定义或对象定义的错误
谢谢!
偏移和调整大小不起作用
2条答案
按热度按时间qnzebej01#
您可以将“如果找到则复制列”拆分为单独的子列:
使用find时,在尝试对匹配的单元格执行任何操作之前,应该检查是否找到了匹配项。
euoag5mw2#
复制列