插入数据,复制结果并使结果成为活动单元格

时间:2015-11-03 00:27:08

标签: excel vba excel-vba

我目前正在处理一个工作表,该工作表用于输入初始数据(例如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

1 个答案:

答案 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这样的东西...也许我想念一些大事......