[英]How to use the indirect function in VBA in my code?
我需要在VBA中使用間接函數。 我想間接調用單元格C15或C14和C15(如果可能)。
C14顯示工作表名稱:Data1 C15顯示范圍:J3:J45999
這應該遵循與excel中的間接函數相同的概念:= indirect(C14&“!”&C15)
Private Sub Unique_Click()
Dim xRng As Range
Dim xLastRow As Long
Dim xLastRow2 As Long
Dim I As Integer
On Error Resume Next
Set xRng = Worksheets("Data1").Range([indirect("c15")]).Select
If xRng Is Nothing Then Exit Sub
On Error Resume Next
xRng.Copy Range("B21")
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range("B21:B" & xLastRow).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
無需在代碼中使用間接,您可以顯式引用單元格的內容
Set xRng = Worksheets("Data1").Range(Worksheets("Data1").Range("c15").text)
但是,您的代碼混合使用了顯式工作表引用(Worksheet(“ data1”),隱式引用(range(“ B21”)將使用當時處於活動狀態的工作表))和對activesheet對象的引用。我建議您明確指定每一點都意味着
我做到了:)使用了以下代碼:
Private Sub Unique_Click()
Dim xRng As Range
Dim xLastRow As Long
Dim xLastRow2 As Long
Dim I As Integer
On Error Resume Next
Set xRng = Worksheets("Data1").Range(Range("C15"))
If xRng Is Nothing Then Exit Sub
On Error Resume Next
xRng.Copy Range("B21")
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range("B21:B" & xLastRow).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.