Sub UpdateCSAH()
Dim S As String
Dim R As Long
Dim RR As Long
Dim CC As Long
Dim i As Long
Dim j As Long
Dim csah() As String 'an array that stores the CSAH sites
ReDim csah(1 To 100, 1 To 7)
Dim Ran As Range
Dim Ran1 As Range
Set Ran = Worksheets("Current Sites").Range("A1").CurrentRegion 'Ran is the region that has values
RR = 1 'row number in csah
CC = 1 'column number in csah
'check each value in Ran to see if its Route section has "CSAH"
For Each cell In Ran
R = cell.row
S = CStr(Cells(R, 4).value)
If InStr(S, "CSAH") > 0 Then 'check if "CSAH" is in the Route section
If CC > 7 Then 'reset the column number and go to the next row when reach the end of the column
CC = 1
RR = RR + 1
End If
csah(RR, CC) = cell.value
CC = CC + 1
End If
Next cell
Worksheets("CSAH Sites").Select
Range("A2:G100").Select
Selection.ClearContents
'assign each array values to cells in sheet"CSAH Sites"
i = 1
j = 1
For i = 1 To UBound(csah, 1)
For j = 1 To UBound(csah, 2)
Cells(i + 1, j) = csah(i, j)
Next j
Next i
'format the CSAH Sites values
Set Ran1 = Worksheets("CSAH Sites").Range("A1").CurrentRegion
For Each cell In Ran1
If cell.row = 1 Then
With cell.Font
.Color = -11489280
End With
ElseIf cell.row Mod 2 = 0 Then
With cell.Interior
.Color = 10092441
End With
End If
Next cell
End Sub
我有一個名爲「當前網站」的Excel工作表,有一些數據。如果第4列有單詞「CSAH」,我想將該行的值存儲到數組中,並將這些值分配給名爲「CSAH Sites」的工作表中的單元格。我的代碼有時可用(第一次點擊),大多數時候它不起作用或無法正常工作。爲什麼我的VBA代碼有時會工作,而大部分時間不是?
請幫我一把!感謝一束!
Downvoted由於示例的源代碼的格式。請確保您在發佈之前仔細檢查您的內容。這使得確定你的源實際在做什麼變得非常困難。 –
它不能正常工作?它是否總是在某一行代碼上失敗?在你的代碼中間有'Cells(i + 1,j)= csah(i,j)',但我們無法知道'Cells'屬於哪個工作表和工作簿。請將工作表和工作簿限定符添加到此代碼行。 – ChipsLetten