所以,我希望从表格中同时删除一堆列但是我得到了运行时错误' 1004&#39 ;:删除范围方法失败。我的床单没有受到保护,但我希望删除的表格是一张桌子。我搜索过很多例子,但他们还没有纠正这些问题,似乎都会产生同样的错误。这就是我所拥有的:
Sub Table_Creator()
Worksheets("Sheet2").Cells.Copy
Worksheets("Sheet3").Range("A1").Select 'cause some times excel hates me unless I use this
Worksheets("Sheet3").Paste
Dim rng As Range
Set rng = Worksheets("Sheet3").Range("A:R").Columns
Sheet3.ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "ComTable"
Application.EnableEvents = False
Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:Q").EntireColumn.Delete Shift:=xlToLeft 'errors on this line with the aforementioned error
Application.EnableEvents = True
Worksheets("Sheet3").AutoFit
End Sub
那我错过了什么?我添加了一些我不应该拥有的东西吗?
答案 0 :(得分:0)
来自范围的问题(“A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:Q”)。EntireColumn。这不是一个正确的符号。
您列出了列的范围,但可以使用带有步骤-2的循环来获取它们并首先指定分组列(O:Q):
Dim i as Long
Range(Columns("O"), Columns("Q")).Delete Shift:=xlToLeft
For i = 13 to 1 Step -2 'Where 13 = "L" and 1 = "A"
Columns(i).Delete Shift:=xlToLeft
Next i
答案 1 :(得分:0)
另一种方法,根据JohnyL的评论。我将“O:Q”解释为“O,R”,但如果错误则代码需要稍作修改。
(1, 2)
(7, 6)
(8, 9)