我需要在Excel中重新格式化33500行数据。我正在尝试编写一个宏来为我做这件事。
我放置了一些嵌套循环来解决问题
Dim i As Integer
Dim m As Integer
Dim n As Integer
Dim K As Integer
Dim p As Integer
Dim c As Integer
For c = 0 To 10
For n = 5 To 10
K = 14 + 7 * (n - 5)
For i = 0 To 7
m = 14 + 8 * c
ActiveSheet.Cells(m + i, n).Select
Selection.Copy
ActiveSheet.Cells(K + i, 37).Select
ActiveSheet.Paste
Next i
Next n
Next c
我被困在如何完成32500行的操作中
答案 0 :(得分:0)
Excel的Integer
的值范围是-32,768到32,767,因此格式化33,500行可能是个问题。假设您对代码的工作方式感到满意,那么将变量类型更改为Long
可能是一个不错的开始。
顺便说一句,您应该避免使用SELECTing
个单元格,因为它会减慢代码速度并导致错误。您可以使用
Cells(m + i, n).Copy Destination:=Cells(K + i, 37)
答案 1 :(得分:0)
根据注释修改了代码,现在看起来像是一种魅力。非常感谢
将我视作整数 昏暗的整数 昏暗为整数 Dim K作为整数 昏暗p为整数
对于i = 0到121
m = 14 对于n = 5到35
ActiveSheet.Range(Cells(m + i * 8,n),Cells(m + i * 8 + 7,n))。Copy
Range(“ AK”&Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
Next n
下一个我
结束子