0

我完全不知道如何解决这个问题,而且我的 VBA 技能很弱。我有这个数据,由 3 列和一些不恒定的行组成(它可以是任意数量的行)。

我希望获取每列中的每个值,并将其作为变量插入到另一张表中。这 3 列是不同的变量,因此进入不同的单元格。然后,这些变化的影响将被收集并存放在给出结果的每一行的单元格中。也就是说,第 1 行可能是 2/3/4。沿着同一行,就在右边的几个单元格中,变量 (2/3/4) 对方程中不同值的影响被存放。

运行后,它移动到下一行,并执行相同的操作。那就是沿该行获取值,将其插入电子表格并沿同一行存放结果。

宏,然后在表的末尾停止运行。

工作表(“Sheet2”)。激活

    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

老实说,我不知道如何编码。任何帮助都会很棒..谢谢

4

1 回答 1

0

代码不会移动到下一行,因为您Do Loop的位置错误。例如:

Do 
    'This is where you put the code you want to do for each line.
Loop

如果你使用 a 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
于 2013-10-24T21:05:34.597 回答