2017-07-06 16 views
0

Imはvbaプログラムで作業しています。配列を使用したいときには、compileerror:matrixが必要になる。問題の原因をcompilererror、matrix expected vba

Dim Watt As Double  
Dim Powerarray As Double 
Watt = ThisWorkbook.Sheets("AS").Range("O6").value 'w is an integer 
w = ThisWorkbook.Sheets("AS").Range("O2").value - 3 
... 

Powerarray(w) = Watt 

任意のアイデア:このコード

N = ThisWorkbook.Sheets("AS").Range("$O$2") 
ReDim Powerarray(0 To N) As Double 
Powerarray(0) = 7 
... 
Watt = Powerarray(w) 

とどこかに私はこのコードで配列を埋めるを使用してループイムのために

+0

最初のサブIにおいてアレイを充填し、第2のサブIにおいてアレイ – Johan

+0

回線エラーを使用するように、コードは、2つの異なるサブ年代にありますか?ワットに配列要素とセル値を割り当てるのはなぜですか? – SJR

+1

エラーはどこですか? PowerArrayも配列かdoubleですか? – MacroMarc

答えて

0

Dim Powerarray As Doubleは配列ではなく可変です。

アレイを別個のサブに使用する場合は、パブリック変数を使用します。ところで

Public Powerarray() As Double 
Sub test1() 
N = ThisWorkbook.Sheets("AS").Range("$O$2") 
ReDim Powerarray(0 To N) As Double 
Powerarray(0) = 7 
... 
Watt = Powerarray(w) 

End Sub 
Sub test2() 
Dim Watt As Double 
'Dim Powerarray As Double '<~~ this is not needed. 
Watt = ThisWorkbook.Sheets("AS").Range("O6").Value 'w is an integer 
w = ThisWorkbook.Sheets("AS").Range("O2").Value - 3 
... 

Powerarray(w) = Watt 
End Sub