【问题标题】:Copy and combine dynamic ranges to new sheet Excel Macro将动态范围复制并组合到新工作表 Excel 宏
【发布时间】:2015-02-17 02:07:28
【问题描述】:

我一直在尝试解决这个问题,但无法让它发挥作用,因为宏代码需要更动态一些。我是编写宏的新手,非常感谢您的帮助。

我有两个范围的 Sheet1:

  • 第一个 Range 来自 A2:MXXX(取决于我评估的行数)
  • 第二个范围是 A3001:M3XXX(也取决于我评估的行数)。

    1. 我想将第一个范围复制到 A 列中的最后一行 包含 Sheet2 的值。
    2. 然后,我想复制第二个范围,直到 A 列中包含值的最后一行,并将其放在 Sheet2 中的第一个范围之后。
    3. 然后我想根据 B 列对新的组合范围进行排序。(升序)
    4. 然后,如果可能,将排序和组合的范围导出到 .csv

(请注意,我只想复制每个单元格中的值,而不是公式)。

非常感谢, 亚当

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    第一次练习。

    选择要复制的第一个范围。 例如选择单元格 A2:A3000 按 F5 键并选择特殊单元格 检查常量然后确定, 您将看到所有非空白单元格都已被选中。 右键单击(或单击复制图标)选择的单元格之一,然后选择复制, 转到工作表 2 并选择 A1 并粘贴特殊值。

    选择要复制的下一个单元格区域并重复直到粘贴, 在表 2 中,再次转到特殊单元格并选择最后一个单元格并确定 选择下面的单元格并粘贴。

    练习这个直到你做对为止。

    完成这些操作后,使用宏记录器制作宏。

    【讨论】:

      【解决方案2】:

      如果我正确理解您要查找的内容,那么这应该可以解决问题。这不会为您保存 .csv。如果您在该部分遇到问题,请告诉我们。

      Sub moveRows()
      
          Dim lastRow1 As Integer
          Dim lastRow2 As Integer
          Dim secondRangeSize As Integer
      
          With Sheets("Sheet1")
              lastRow1 = .Cells(3000, "A").End(xlUp).Row
              lastRow2 = .Cells(6000, "A").End(xlUp).Row
          End With
      
          secondRangeSize = lastRow1 + (lastRow2 - 3000)
      
          With Sheets("Sheet2")
              .Range("A1:M" & lastRow1) = Sheets(1).Range("A1:M" & lastRow1).Value
              .Range("A" & (lastRow1 + 1) & ":M" & secondRangeSize) = Sheets(1).Range("A3001:M" & lastRow2).Value
          End With
      
          With Sheets("Sheet2").Sort
              .SortFields.Add Key:=Range("B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
              .SetRange Range("A1:M" & secondRangeSize)
              .Header = xlNo
              .MatchCase = False
              .Orientation = xlTopToBottom
              .SortMethod = xlPinYin
              .Apply
          End With
      
      End Sub
      

      【讨论】:

      • 谢谢,我今天晚些时候去看看! :) @Porcupine911
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多