![](/img/trans.png)
[英]Excel VBA - Copy Table Rows to another worksheet if within date range
[英]Excel VBA get table range on unactive worksheet
我不知道為什么這個說法行不通。
Rng = Worksheets(sheetName).ListObjects(table).Range.Select
我有一個帶有一個按鈕的工作表“ sheetX”,該按鈕在全局工作區“ Thisworkbook”中調用子過程“ export_json”。 我希望“ Thisworkbook”中的子進程引用“ A2”處“ sheetX”上的表范圍,但它給出錯誤“應用程序定義或對象定義的錯誤”。 我不想使用Application.Goto
這是為什么? 我忽略了一些基本的東西
Public Sub CommandButton1_Click()
sheet = ActiveSheet.Name
Call ThisWorkbook.export_json(sheet)
End Sub
Public Sub export_json(sheetName)
table = ThisWorkbook.get_table(Worksheets(sheetName).Range("A2"))
Rng = Worksheets(sheetName).ListObjects(table).Range.Select
Rng = Selection.Address
table是字符串類型,而sheet是字符串類型的正確工作表名稱,因此這不是問題。
您的語法看起來有些Rng
,當您嘗試在函數export_json()
聲明Rng
,應將其作為字符串傳遞。
Public Sub CommandButton1_Click()
Dim sheetX As String
sheetX = ActiveSheet.Name
Call export_json("sheetX")
End Sub
Private Function export_json(sheetName As String)
table = ThisWorkbook.get_table(Worksheets(sheetName).Range("A2"))
Worksheets(sheetName).ListObjects(table).Range.Select
End Function
嘗試下面的代碼,無需使用Select
。
另外,我不清楚為什么將Function
的代碼保留在ThisWorkbook
模塊中,而不是在常規模塊中。
Public Sub CommandButton1_Click()
Dim TableRangeString As String
TableRangeString = ThisWorkbook.export_json(ActiveSheet.Name)
' for debug
MsgBox TableRangeString
End Sub
Public Function export_json(sheetName) As String
' use the function to return the Range.Address by changing it to return a String
Dim Rng As Range
Set Rng = Worksheets(sheetName).Range("A2").ListObject.Range
export_json = Rng.Address
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.