我今天遇到了这个 VBA 程序的问题,它已经运行了几天,现在它开始发臭了。我没有更改任何我知道会导致此问题的内容,因为它是一个简单的复制和粘贴,并且只是将单元格值设置为数组的值。我玩过它并寻找答案,但似乎无法解决它。
Worksheets(1).Select
For i = 1 To N
Worksheets(1).Cells(3 + i, 1).Value = Current(i)
Next i
For h = 1 To holidays
Worksheets(h).Select
Range(Worksheets(h).Cells(4, 6), Worksheets(h).Cells(4 + N, 100)).Select
Selection.Copy
Worksheets("Sort Sheet").Select
Cells(1, 1).Select
Selection.PasteSpecial
For f = 1 To N
For i = 1 To N
If Position(i) = f Then
Range(Worksheets("Sort Sheet").Cells(f, 1), Worksheets("Sort Sheet").Cells(f, 100)).Select
Selection.Copy
Worksheets(h).Select
ActiveSheet.Cells(i + 3, 6).Select
ActiveSheet.PasteSpecial
Application.CutCopyMode = False
End If
Next i
Next f
Next h
End Sub
存在错误的第一行是 ActiveSheet.PasteSpecial,我尝试过普通的 paste 和 pastespecial,粘贴整行和定义的范围。但似乎没有什么可以让它发挥作用。
有错误的第二行是 Worksheets(1).Cells(3 + i, 1).Value = Current(i),这一直工作到今天,所以我不明白为什么它停止了,current(i)是一个一维数组值,它是一个名称,例如“TONY BUGGENS”。
整个程序是一个排序程序,因此它对数组中的名称进行排序,然后将它们粘贴到电子表格中的原始名称上。
感谢你们的帮助,我相信我可能忽略了一些简单的事情。这是一个清晨。
干杯,艾米