我有一个Excel文件,有一个宏可以复制Sheet1中的所有数据并按特定顺序将其粘贴到Sheet2。
问题:有时文件将使用其他列进行更新,因此需要将该数据粘贴到从表1到表2的某个列中,示例将是如果Sheet1的值为NewData1,则复制所有数据该列并将其粘贴到工作表2.这必须通过名称而不是工作表1中的位置进行复制
我已经使用Cells.Find来查找Column的名称,现在我需要的是复制整个列中的值并将其粘贴到新表中
以下更新代码
Set res = Worksheets("Sheet1").Cells.Find(What:="NewData1")
If Not res Is Nothing Then
Sheets("Sheet1").Select
Range(Cells(2, res), Cells(50, res)) 'SOMETHING LIKE THIS
Selection.Copy
Sheets("Sheet2").Select
Sheets("Sheet2").Cells(3, 9).Select
ActiveSheet.Paste
End If
更新预期
ColA ColB ColC
Hello Goodbye How are you
Hi Bye Are you well
Hey Seeya You ok
如果将NewData1添加到此,它看起来像这样:
ColA ColB ColC NewData1
Hello Goodbye How are you Im new
Hi Bye Are you well So am i
Hey Seeya You ok Me Too
我需要复制该数据并将其粘贴到另一张纸上,问题是它可能不是纸张的第4列,可能是5号6号或7号。这就是我希望通过Cell Value复制的原因
更新2 重新编辑代码,是否有类似的东西可以做到?
答案 0 :(得分:0)
您可以首先在当前数据集中存储列数,然后使用它,这只是一个开始:
Dim n As Long
n = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
另外,为什么你不是每次只复制动态范围数据集?