使用VBA监视更改方程中的初始数据的效果

时间:2013-10-24 12:03:58

标签: vba excel-vba excel

我完全不知道如何解决这个问题,而且我的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

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

1 个答案:

答案 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
相关问题