【问题标题】:copying values from specific cells to a summary sheet将特定单元格中的值复制到摘要表
【发布时间】:2014-01-13 19:50:49
【问题描述】:

我对 VBA 很陌生,我已经设法通过使用论坛和一些剪切和意大利面来获得,但似乎我不能再进一步了。我有一个工作簿,其中包含 100 个工作表,标题为 1_OUT_IX_-500.TXT、2_OUT_IX_-490.TXT 等等,直到 101_OUT_500.TXT,我试图从所有工作表上复制相同范围的数据,特别是 AO2:AQ2 并将其粘贴到B2:D2 范围内的新摘要表,因此第一行是空白的,以便我添加标题。所以摘要表看起来像

-500 '1_OUT_IX_-500'$AO$2 '1_OUT_IX_-500'$AP$2 '1_OUT_IX_-500'$AQ$2

-490 '2_OUT_IX_-490'$AO$2 '2_OUT_IX_-490'$AP$2 '2_OUT_IX_-490'$AQ$2


500 '101_OUT_IX_500'$AO$2 '101_OUT_IX_500'$AP$2 '101_OUT_IX_500'$AQ$2

非常感谢任何帮助 提前谢谢你

【问题讨论】:

    标签: excel copy excel-2010 summary vba


    【解决方案1】:

    试试这个代码:

     Sub test()
        Dim summarySheet As Worksheet
        Dim sh As Worksheet
    
        Dim j As Integer
    
        'change "Summary" to the sheet name that is true for you'
        Set summarySheet = ThisWorkbook.Worksheets.Add
        summarySheet.name = "Summary"
    
        'number of first row where need to paste in summary sheet'
        j = 2
        'loop throught all sheets'
        For Each sh In ThisWorkbook.Worksheets
            If sh.Name <> summarySheet.Name Then
                summarySheet.Range("B" & j & ":D" & j).Value = _
                    sh.Range("AO2:AQ2").Value
                j = j + 1
            End If
        Next
    
    End Sub
    

    注意,您需要在Set summarySheet = ThisWorkbook.Worksheets("Summary") 行中为摘要表指定正确的名称)

    【讨论】:

    • 谢谢,这正是我一直在寻找的我已经将“Set summarySheet = ThisWorkbook.Worksheets("Summary"))”更改为特定于我。我想知道是否将“Set summarySheet = ThisWorkbook.Worksheets("Summary")) 行替换为 'Set SummarySheet = ActiveWorkbook.Worksheets.Add 和 'SummarySheet.Name=Summary' 会添加一个新工作表并执行继续执行的宏命令是吗?
    • 你是对的!我已经更新了我的答案。但最好使用ThisWorkbook 而不是ActiveWorkbook(因为如果您在运行宏期间激活另一个工作簿 - 它会在另一个 WB 中创建新工作表)
    【解决方案2】:

    您可以在不使用宏的情况下执行此操作。您可以简单地使用INDIRECT 函数。

    例子:

    +----+------------------+--------------------+-------+---------------------+
    | Id |       Plan       |     Plan Name      | Range |        Value        |
    +----+------------------+--------------------+-------+---------------------+
    |  1 | _OUT_IX_-500.TXT | =A2 & B$2          | !A1   | =INDIRECT(C2 & D$2) |
    |  2 |                  | 2_OUT_IX_-500.TXT  |       |                     |
    |  3 |                  | 3_OUT_IX_-500.TXT  |       |                     |
    |  4 |                  | 4_OUT_IX_-500.TXT  |       |                     |
    |  5 |                  | 5_OUT_IX_-500.TXT  |       |                     |
    |  6 |                  | 6_OUT_IX_-500.TXT  |       |                     |
    |  7 |                  | 7_OUT_IX_-500.TXT  |       |                     |
    |  8 |                  | 8_OUT_IX_-500.TXT  |       |                     |
    |  9 |                  | 9_OUT_IX_-500.TXT  |       |                     |
    | 10 |                  | 10_OUT_IX_-500.TXT |       |                     |
    |    |                  |                    |       |                     |
    +----+------------------+--------------------+-------+---------------------+
    

    我将此代码放在摘要表中,并将 Id 表放在单元格 A1 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 2011-09-08
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      相关资源
      最近更新 更多