如果列具有特定名称

时间:2016-11-02 15:24:18

标签: excel vba excel-vba

我有一个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 重新编辑代码,是否有类似的东西可以做到?

1 个答案:

答案 0 :(得分:0)

您可以首先在当前数据集中存储列数,然后使用它,这只是一个开始:

Dim n As Long

n = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column

另外,为什么你不是每次只复制动态范围数据集?