我正在尝试运行一个宏。宏在A列的每一行中查找,如果该值大于0,它将复制同一行(M:BT)中的一系列单元格,并粘贴并转置该行在同一行的K列中的单元格中。下面的代码可以工作,但行数会发生变化并且可能很多。我需要它循环直到在A列中找不到更多数据。请记住,将有空行。正如我之前所说,我的代码使用了100行的小样本,但是当我为65,000行做了一行时,它给了我一个
溢出错误
任何想法如何解决这个问题?
Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+w
'
Range("K1").Select
ActiveCell.FormulaR1C1 = "DATE"
Range("L1").Select
ActiveCell.FormulaR1C1 = "DAYS"
Columns("BU:EB").Select
Selection.Delete Shift:=xlToLeft
Columns("EC:IR").Select
Selection.Delete Shift:=xlToLeft
With ActiveSheet
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Dim AddRows As Integer: AddRows = 59
Dim i As Integer: i = lastrow
Do While i <> 1
Rows(i & ":" & i + AddRows - 1).Insert
i = i - 1
Loop
ScreenUpdating = True
Rows("2:60").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
Dim x As Integer, a As Integer
a = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To a
If Cells(i, 1) > 0 Then
Range(Cells(x, 13), Cells(x, 72)).Select
Selection.Copy
Cells(x, 11).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=True
End If
Next x
End Sub
答案 0 :(得分:2)
整数不够大&#34;保持你的大号。使用Long
代替Integer
。
Dim x As Long, a As Long
参见https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/data-type-summary整数数据类型有2个字节,因此只能保持-32768到+ 32767