我遇到了一個問題,即時通訊相當新的VBA,但學習速度很快。我一直在嘗試糾正下面的代碼,通過一列查看並挑出列中所有可能的數據行,以便在另一位代碼中使用。我不能讓數組工作,我可能會做錯了。 如果它不清楚,它應該檢查列I中的一個單元格的值,如果它是一個值(如果它沒有被存儲(代碼顯示,但尚未使用)),然後將值存儲在數組中數組中的位置和列向下的位置遞增。Excel VBA:不能添加到數組?
另一個問題,我還沒有看,然後是如何安排在名稱等數組中的值?在這種情況下,這些值將是AHU1,AHU2,AHU3等高達約AHU5或6,我還打算實施一些代碼,如果necassery會擴展數組(從較小,因此它不會大於它所需的數量)
編輯:另外一個問題我havnt尚未制定出就是爲什麼如果語句總是導致要添加到陣列中的值(它不)
Do
If IsNull(V1.Range("I" & i)) = False Then 'And V1.Range("I" & i).Value <> (Val(AHUArray(1)) Or Val(AHUArray(2)) Or Val(AHUArray(3)) Or Val(AHUArray(4)) Or Val(AHUArray(5)) Or Val(AHUArray(6)) Or Val(AHUArray(7)) Or Val(AHUArray(8)) Or Val(AHUArray(9)) Or Val(AHUArray(10))) Then 'And (does not equal any other values in the array
AHUArray(ArrayDim) = V1.Range("I" & i).Text
i = i + 1
ArrayDim = ArrayDim + 1
Else
i = i + 1
End If
Loop While i <= LastRow
任何想法?幫助將不勝感激!
這些是在此之前的代碼包住它的一個probloem這些定義(因爲它已經過去,但我不認爲這是什麼?
Dim V1 As Worksheet
Dim LastRow As Long
Dim C As Range
Dim FirstAddress As String
Dim AHUArray(1 To 10) As String
Dim DestCell As Integer
Dim i As Integer
Dim ArrayDim As Integer
Set V1 = ThisWorkbook.Sheets("V1")
Set AHU = ThisWorkbook.Sheets("AHU")
LastRow = V1.Range("A:A").Find("*", V1.Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DestCell = 3
ArrayDim = 1
i = 3
謝謝,認識到這一點我去爲一個IsEmpty和一個另外的函數。我的解決方案被添加爲另一個答案。 –
感謝您的幫助:D –