2017-09-18 13 views
3

以下のコードを使用して、RawImportシートからPullDataにデータをプルします。ExcelのVBAを使用して範囲を掛ける

Dim lrA As Integer 

    lrA = RawImport.Range("B" & Rows.Count).End(xlUp).Row 

    PullData.Range("A2:A" & lrA - 6).Value = RawImport.Range("G8:G" & lrA).Value 
    PullData.Range("A2:A" & lrA).NumberFormat = "d mmm yyyy h:mm;@" 
    PullData.Range("A:A").Columns.AutoFit 

    PullData.Range("B2:B" & lrA - 6).Value = RawImport.Range("E8:E" & lrA).Value 

    PullData.Range("C2:C" & lrA - 6).Value = RawImport.Range("C8:C" & lrA).Value 

    PullData.Range("D2:D" & lrA - 6).Value = RawImport.Range("D8:E" & lrA).Value 

    PullData.Range("E2:E" & lrA - 6).Value = RawImport.Range("B8:B" & lrA).Value 

    PullData.Range("F2:F" & lrA - 6).Value = RawImport.Range("F8:F" & lrA).Value 

    Application.Calculation = xlCalculationAutomatic 

    Application.ScreenUpdating = True 

ここで、(2列目以降の)E列とF列を掛けて、G列に加算したいと考えています。私は

PullData.Range("G2:G" & lrA - 6).Value = PullData.Range("F2:F" & lrA - 6).Value * PullData.Range("E2:E" & lrA - 6).Value 

上と一緒にコードの下に追加しようとしましたが、コードを実行している間、私はType Mismatchエラーを取得しています。どのような値を乗算し、Gの列に割り当てるための最良の方法は何ですか?

+0

'' LRAの値とは何ですかを使うだろうか? – Jeeped

+0

@Jeeped IraはRawImportシート行をカウントする整数です – acr

+2

代わりに 'Integer' [常に' Long'を使用](https://stackoverflow.com/a/26409520/3219613)を使用しないでください。特に行数を扱う場合:Excelには「整数」よりも多くの行があります。 –

答えて

3

簡単な数式を作成し、数式の結果を解決します。

PullData.Range("G2:G" & lrA - 6).Formula = "=F2*E2" 
PullData.Range("G2:G" & lrA - 6) = PullData.Range("G2:G" & lrA - 6).Value 

数式を書きたくない場合は、配列を作成し、個々の行の乗算演算の結果を格納してループします。

1

このコードを使用してください:

For i = 2 To lrA - 6 
    PullData.Range("G" & i).Value = PullData.Range("F" & i).Value * PullData.Range("E" & i).Value 
Next i 

は、このヘルプを願っています。

2

またAutofill

PullData.Range("G2") = "=F2*E2" 
PullData.Range("G2").Autofill Destination:=PullData.Range("G2:G" & lrA-6) 
+0

これは、乗算演算を表す式であり、OPとして示される生の値ではありません。 – Jeeped

関連する問題