Excel VBA:重复计算不同工作表上输入数据的多行

时间:2014-12-11 12:46:08

标签: excel vba excel-vba

我有一个包含3个工作表(原始数据,输入和结果)的工作簿。

我想在原始数据上获取B2,T2,U2和AM2的内容,并分别在输入上放入B2,B10,B31和C15。

这样做会更改结果上的单元格C14和C15的内容,然后我想将其放入原始数据的EC2和ED2中。

然后我想要同样的事情发生在B3,T3,U3和AM3等 - 基本上是关于原始数据的下一行信息,然后是下一行,依此类推很多行。 / p>

如果有人可以提供帮助并指出我正确的方向,我将不胜感激!

我在这里找到的最接近其他人的帖子(链接如下)没有得到解答 - 所以如果您需要更多信息或澄清我想要实现的目标,请告诉我!

Repeating calculation for multiple rows on input data on a different worksheet

谢谢!

麦克

2 个答案:

答案 0 :(得分:0)

我设法提出了下面的内容,我认为现在只需插入一些变量引用。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wb As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
    Dim rng As Range
    Set wb = ActiveWorkbook
    Set ws1 = wb.Worksheets("Raw Data")
    Set ws2 = wb.Worksheets("Inputs")
    Set ws3 = wb.Worksheets("Results")
    Set rng = ws1.Range("A2:ED193")
        For Each row In rng.Rows
            ws1.Range("B").Copy Destination:=ws2.Range("B2")
            ws1.Range("T").Copy Destination:=ws2.Range("B10")
            ws1.Range("U").Copy Destination:=ws2.Range("B31")
            ws1.Range("AM").Copy Destination:=ws2.Range("C15")
            ws3.Range("C14").Copy Destination:=ws1.Range("EC")
            ws3.Range("C15").Copy Destination:=ws1.Range("ED")
        Next row
End Sub

答案 1 :(得分:-1)

我建议您查看FOR循环,因为您尝试在整个范围内重复某个过程。以下是Microsoft对他们的introduction

在循环内部,您将根据另一个上的单元格值为一个工作表上的单元格指定值。我将由你做一些关于该主题的研究。

您还需要研究在单元格引用中使用变量,以便它们随着循环在工作簿中的进展而更改。