我一直在尝试解决这个问题,但是无法让它工作,因为宏代码需要更加动态。我是编写宏的新手,非常感谢你的帮助。
我的Sheet1有两个范围:
第二个范围是A3001:M3XXX(也取决于我评估的行数)。
(请注意,我只想复制每个单元格中的值,而不是公式)。
非常感谢, 亚当
答案 0 :(得分:0)
练习第1节。
选择要复制的第一个范围。 例如,选择单元格A2:A3000 按F5键并选择特殊单元格 检查常数然后确定, 您将看到已选择所有非空白单元格。 右键单击(或单击其中一个选择单元格上的“复制”图标),然后选择“复制”, 转到第2页并选择A1和选择特殊值。
选择要复制的下一个单元格范围并重复直到粘贴, 进入工作表2后,再次转到特殊单元格并选择最后一个单元格,然后单击确定 选择下面的单元格并粘贴。
练习这个,直到你做对了。
完成这些操作后,使用宏录制器制作宏。
答案 1 :(得分:0)
如果我正确理解你在寻找什么,那么这应该可以解决问题。这不会为你做.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