2017-11-16 8 views
0
'Declare variables for cell values attained from APR spreadsheet 
    Dim orgSheetvalues(0) As String 'Project Title 
    Dim orgSheetvalues(1) As String 'Circuit Tag 
    Dim orgSheetvalues(2) As String 'District 
    Dim orgSheetvalues(3) As String 'State 
    Dim orgSheetvalues(4) As Date 'Date recieved 
    Dim orgSheetvalues(5) As Currency 'Planned Capital Cost 
    Dim orgSheetvalues(6) As Currency 'Actual Capital Cost 
    Dim orgSheetvalues(7) As Date 'Capital work completed date 
    Dim orgSheetvalues(8) As Currency 'Planned O&M Cost 
    Dim orgSheetvalues(9) As Currency 'Actual O&M Cost 
    Dim orgSheetvalues(10) As Date 'O&M work completed date 
    Dim orgSheetvalues(11) As String 'RWP File Path 

明らかにこれは機能しません。誰かが、同じ変数名を同じ変数名に使うことができる方法を知っていますか?それがうまくいくかどうか(例:orgSheetvalue(iterating variable))のように繰り返すことができますか?あなたはそれぞれの位置が保持しているデータ型を覚えておく必要がありますようVariant配列がうまく動作しますが変数を使用してさまざまなタイプの変数を開始できます。

+2

バリアントの配列を使用して、特定のタイプを使用して各メンバーを初期化しますか?どうして? –

+0

[動的変数名VBAを作成する方法](https://stackoverflow.com/questions/38254337/how-to-create-dynamic-variable-names-vba)の可能な複製 –

答えて

1

Option Explicit 

Sub aaa() 

    Dim bbb(10) As Variant 

    bbb(0) = "test 123"   ' string 
    Set bbb(1) = Range("a1")  ' object 
    bbb(2) = 98765    ' numeric 

    Debug.Print bbb(0); vbTab; bbb(1).Interior.Color; vbTab; bbb(2) 

End Sub 
4

は、それがエラーを起こしやすいです。

私の意見ではカスタムタイプがより良いアプローチになるでしょう。

Public Type MyCustomType 
    ProjectTitle As String 
    CircuitTag As String 
    District As String 
    State As String 
    DateRecieved As Date 
    PlannedCapitalCost As Currency 
    '... 
End Type 


Sub T() 
    Dim o As MyCustomType 
     o.ProjectTitle = "abc" 
     o.CircuitTag = "..." 
     o.DateRecieved = Date 
End Sub 
関連する問題