嗨,我有一個問題,定義一個單元格的範圍作爲一個變量,取決於什麼樣的細胞組發生了變化。到目前爲止,我有這個,但它發送了多個錯誤,我試着將它們作爲字符串傳遞並創建臨時變量來保存值並傳遞它,但不管它看起來沒有工作。VBA將細胞/細胞的範圍傳遞給多個潛艇
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Worksheets("Sheet1").Range("A:E"), Target) Is Nothing) Then
DoSort("A3:F100", "A4")
End If
If Not (Application.Intersect(Worksheets("Sheet1").Range("H:L"), Target) Is Nothing) Then
DoSort("H3:M100", "H4)
End If
End Sub
Sub DoSort(x As Range, y As Range)
With ThisWorkbook.Sheets("Sheet1")
.Range(x).Sort Key1:=.Range(y), Order1:=xlAscending, Header:=xlYes
End With
End Sub
我有,當我硬編碼的細胞像在此之前的工作:
Private Sub DoSort2()
With ThisWorkbook.Sheets("Sheet1")
.Range("H3:M100").Sort Key1:=.Range("H4"), Order1:=xlAscending, Header:=xlYes
End With
End Sub
從來沒有真正工作在VBA與Excel宏所以很新的這一點,所以任何幫助,將不勝感激!
聰明的我指針(則要remeber說),我也得到某種方式得到來自代碼的語法錯誤。有什麼我失蹤?我還必須在sub中定義x和y,因爲它們在傳遞引用時已經聲明瞭嗎? – Phoenix1237
@ Phoenix1237 - 語法錯誤發生在哪一行?並且不需要在「DoSort」子文件中定義'x'或'y'。參數引用已經做到了。 –
Sub Worksheet_Change(ByVal Target As Range)發生錯誤,但該宏存儲在Sheet1中。 – Phoenix1237