【问题标题】:Copy data between worksheets在工作表之间复制数据
【发布时间】:2015-11-01 14:19:55
【问题描述】:

我手头的问题是:我有一个包含多个工作表的 Excel 文件,它应该使用工作表 A 中的单元格中的值填充工作表 B 中的单元格。我为此做了一个小宏,但它就是不工作它应该。要么进入完全不同的单元格,抛出错误,要么复制公式而不是值。

具体如下:

工作表 A 中的数据位于完整的 H 列中,并从第二行开始。这些单元格中的数据是来自不同字段的 CONCATENATE。

循环应从工作表 A 中的 H2 中获取第一个值,并将其放入工作表 B、B1 中。然后移动到工作表 A 中的 H3 并将此值放入工作表 B、C1 等中。

它应该这样做,直到工作表 A 列 H 中没有值为止。

     Sub Test2()

' Select the worksheet

Worksheets("A").Activate

' Select first cell with data

Range("H2").Select

' Loop until no data present

  Do Until IsEmpty(ActiveCell)

' Helper Variable for startpoint in worksheet B

Dim i As Integer
i = 8

     ' Copy first value
     Selection.Copy

     ' Go to different worksheet
     Worksheets("B").Activate

     ' Select first data entry point
     ActiveCell(1, i).Select

     ' Paste Data
     Selection.Paste

     ' Move helper variable in next column
     i = i + 1

     ' Return to worksheet A
     Worksheets("A").Activate

     ' Select next row
     ActiveCell.Offset(1, 0).Select

  Loop

   End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果我使用这个静态代码,它适用于定义的范围

    Sub Macro1()
    Worksheets("A").Activate
    Range("H2:H12").Select
    Selection.Copy
    Worksheets("B").Activate
    Range("B1:H13").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Application.CutCopyMode = False
    End Sub
    

    似乎也更优雅一些,但我不知道如何让它“灵活”,直到它涉及到一个空单元格。

    我遇到的下一个问题现在在工作表 B 中,它应该用这些东西做一个矩阵。在值位于第 1 行、B 列之后,我有这个公式:

    =Table2[[#Headers];[Column1]]
    

    现在这个公式应该扩展到添加数据的数量。

    有点像

    =Table2[[#Headers];[Column2]]
    =Table2[[#Headers];[Column3]]
    ....
    

    等等,取决于附加值的数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多