簡體   English   中英

如何在我的代碼中使用VBA中的間接函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM