簡體   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