我完全不知道如何解决这个问题,而且我的VBA技能非常弱。我有这个数据,由3列和许多不恒定的行组成(可以是任意数量的行)。
我希望获取每列中的每个值,并将其作为变量插入另一个工作表中。这3列,是不同的变量,所以进入不同的单元格。然后将收集这些变化的影响并将其沉积在产生结果的每一行的细胞中。也就是说,第1行可能是2/3/4。沿着同一行,只是右边的几个单元格,沉积了变量(2/3/4)对方程中不同值的影响。
运行后,它将移至下一行,并执行相同的操作。即沿着该行获取值,将其插入电子表格并沿同一行存放结果。
宏,然后停止在表的末尾运行。
工作表( “Sheet 2中”)。激活
Worksheets("Sheet2").Range("A9").Select
Worksheets("Rating").Range("B3") = ActiveCell.Offset(0, 0).Value
Worksheets("Sheet2").Range("B9").Select
Worksheets("Rating").Range("B5") = ActiveCell.Offset(0, 0).Value
Worksheets("Sheet2").Range("C9").Select
Worksheets("Rating").Range("B6") = ActiveCell.Offset(0, 0).Value
Do
If ActiveCell.Value = "" Then Exit Do
ActiveCell.Offset(1, 0).Select
Loop
说实话,我不知道如何编码。任何帮助都会很棒..谢谢
答案 0 :(得分:0)
代码未移至下一行,因为Do Loop
位于错误的位置。例如:
Do
'This is where you put the code you want to do for each line.
Loop
如果您使用Do Loop
,则无需使用For Next
(您只需要一个循环即可完成所需操作)。
老实说,这就是我编写上述内容的方式:
未经测试
Option Explicit
Sub Test()
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Dim i As Long
Dim ii As Long
Set sht1 = ThisWorkbook.Sheets("Sheet2")
Set sht2 = ThisWorkbook.Sheets("Rating")
i = 9
ii = 3
Do
sht2.Cells(ii,"B") = sht1.Cells(i,"A").Value
sht2.Cells(ii + 2,"B") = sht1.Cells(i,"B").Value
sht2.Cells(ii + 3,"B") = sht1.Cells(i,"C").Value
i = i + 1
ii = ii + 4
Loop Until sht1.Cells(i,"A") = ""
End Sub