繁体   English   中英

如何将一个Excel工作表中的单元格与另一个Excel工作表中的多个单元格相乘

[英]How to multiply cells in one excel sheet with multiple cells in another excel sheet

我有一本带有两个Excel工作表的工作簿:sheet1和sheet2。 在工作表1中,我从B列到CE都有大量数据。

目前,我使用VBA将Sheet1中“ B3:AP3”范围中的每一行复制到Sheet2中,从而复制了每一行,因此它将代表两次。 一切正常!

我在Sheet2中遇到的问题现在需要进行计算。 在Sheet1中,每行CE和CF单元格中都有一个数字。 由于这些行已重复,因此我需要将Sheet2的AP3单元中的数字与Sheet1中的CE3的数目相乘,并将Sheet2中的AP4的数目与Sheet1中的CF3的相乘。

宏需要继续对后续单元执行此操作。 在总单元AP中,第一条重复行需要与Sheet1中的数字CE3相乘,而第二条重复行的单元AP需要与Sheet1中的CF3相乘。 结果应发布在Sheet2列AQ中。

在下面,我发布了用于复制和移动行的代码,但是我真的为乘法而苦苦挣扎,任何帮助都将不胜感激!

Sub CopyRows()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim i As Long, k As Long
Dim ws1LR As Long, ws2LR As Long

Set ws1 = Sheets("Bearbejdning")
Set ws2 = Sheets("Sheet8")

ws1LR = ws1.Range("B" & Rows.Count).End(xlUp).Row + 1
ws2LR = ws2.Range("B" & Rows.Count).End(xlUp).Row + 1

i = 2
k = ws2LR
Do Until i = ws1LR
    With ws1
        .Range(.Cells(i, 1), .Cells(i, 43)).Copy
    End With

    With ws2
        .Cells(k, 1).PasteSpecial
        .Cells(k, 1).Offset(1, 0).PasteSpecial
    End With

    Range("k,AR" & ws2LR).Formula = "=ws1.range(.Cells(i, 73)) * ws2.range(.Cells(k, 36))"

    k = k + 2
    i = i + 1
Loop

End Sub

您不能以这种方式将对象传递给excel公式。

尝试这个:

Range(k,"AR" & ws2LR).Formula = "=" & ws1.range(.Cells(i, 73)).address &" * " & ws2.range(.Cells(k, 36)).address

或者,您可以将预先计算的值放在单元格中。

Range(k,"AR" & ws2LR).Value = ws1.range(.Cells(i, 73)) * ws2.range(.Cells(k, 36))

另外,这个Range调用对我来说看起来很奇怪: Range("k,AR") 我认为应该类似于Cells(k,"AR")

变量不应该在引号内,并且Range不接受行/列参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM