我有一个要在其中创建表的子目录,以便以后可以对其进行排序(其中一个列必须按降序排列)。
当我打开工作簿并在正确的工作表上时,该子项就会起作用。
当我尝试运行代码而不必同时查看工作表时,会弹出以下问题:
“ object_global'的方法'范围'失败”
“无法在中断模式下执行代码”
这是我的潜水员的样子。该行是静态的,但列长不时更改。
Sub create_the_table_investeringsforeninger()
' Best used when row length is static
Dim sht As Worksheet
Dim LastRow As Long
Dim Lrow As Long
Set sht = ThisWorkbook.Worksheets(2)
'Refresh UsedRange
ThisWorkbook.Worksheets(2).UsedRange
Lrow = Range("D" & Rows.Count).End(xlUp).Row
sht.ListObjects.Add(SourceType:=xlSrcRange, Source:=sht.Range("A2:F2" & Lrow)).Name = "Investeringsforeninger"
'Sort Range "Investeringsforeninger"
Range("investeringsforeninger").Sort Key1:=Range("F2"), order1:=xlDescending, Header:=xlYes
End Sub
我的整个代码都应该在不先打开文档的情况下运行(为此,我正在使用vbs文档)。
答案 0 :(得分:0)
您缺少对工作表的引用,因此仅当它是活动工作表时才起作用。我删除了您的UsedRange
行,因为它没有任何作用。
Sub create_the_table_investeringsforeninger()
' Best used when row length is static
Dim sht As Worksheet
Dim LastRow As Long
Dim Lrow As Long
Set sht = ThisWorkbook.Worksheets(2)
Lrow = sht.Range("D" & Rows.Count).End(xlUp).Row
sht.ListObjects.Add(SourceType:=xlSrcRange, Source:=sht.Range("A2:F2" & Lrow)).Name = "Investeringsforeninger"
'Sort Range "Investeringsforeninger"
sht.Range("investeringsforeninger").Sort Key1:=sht.Range("F2"), order1:=xlDescending, Header:=xlYes
End Sub