我目前正在处理一个工作表,该工作表用于输入初始数据(例如A1:A3),将这些数据汇总在A6中(我没有包含在代码中),然后将数据从A1:A3复制到B1: B3,从B1:B3向每个单元格添加1
,从B1:B3获取数据并重复此过程直到第十列。下面的代码显示了我尝试过的内容。我在连续列中复制数据时遇到问题,就像运行以下行一样:
LR = Cells.Find(What:="*",SearchDirection:=xlPrevious,SearchOrder:=xlByRows).Row
LC = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
Cells(LR, LC).CurrentRegion.Select
它选择求和值而不是数据(A1:A3)。代码:
Sub test()
Dim LR As Long, LC As Long
For X = 1 To 10
Application.CutCopyMode = False
Cells(1, X) = X + 1
Cells(2, X) = X + 1
Cells(3, X) = X + 1
LR = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
LC = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
Cells(LR, LC).CurrentRegion.Select
Selection.Copy
Cells(LR - 2, LC + 1).PasteSpecial Paste:=xlPasteFormulas
Next X
End Sub
答案 0 :(得分:0)
很抱歉写这个作为答案(也许我弄错了)但是要在评论中写下来......
我很困惑......
Cells(1, X) = X + 1
Cells(2, X) = X + 1
Cells(3, X) = X + 1
始终将A1:A3
设置为2 ... A6中的公式也总是把它粘贴到B4 ......你想要它做什么?
Sub test()
Dim X As Byte
For X = 2 To 10
Cells(1, X) = Cells(1, X - 1) + 1
Cells(2, X) = Cells(2, X - 1) + 1
Cells(3, X) = Cells(3, X - 1) + 1
Cells(6, X - 1).Copy
Cells(6, X).PasteSpecial Paste:=xlPasteFormulas
Next X
End Sub
或者这个:
Sub test2()
Dim X As Byte
For X = 2 To 10
Cells(1, X) = Cells(1, X - 1) + 1
Cells(2, X) = Cells(2, X - 1) + 1
Cells(3, X) = Cells(3, X - 1) + 1
Cells(4, X) = Cells(6, X - 1).Value
Next X
End Sub
然而......每个解决方案只是为每列增加了第1行到第3行的值 - > B1为=A1 + 1
,您可以将其复制并粘贴到B1:J3
的范围内
另外,看起来B4只是=A6
,也可以复制粘贴到C4:J4)
至少,我不知道你为什么要使用VBA这样的东西...也许我想念一些大事......