2016-09-14 129 views
0

我正在尝试编写一些代码,这些代码将带有表格的表格并仅将可见单元格粘贴到新工作表并冻结标题行。我一直得到一个1004粘贴workseet类失败错误的方法,调试器突出显示activesheet.paste作为问题。我对VBA相当陌生,所以不确定为什么我在这样一个看似简单的命令上出现错误?粘贴可见单元格错误1004

Sub Macro6() 
' 
' Macro6 Macro 
' 

' 
    Sheets("Midwest Log").Select 
    Range("A1").Select 
    Selection.SpecialCells(xlCellTypeVisible).Select 
    Selection.Copy 
    Sheets.Add After:=Sheets(Sheets.Count) 
    Sheets(Sheets.Count).Name = "MW Log" 
    Application.CutCopyMode = False 
    Sheets("MW Log").Paste 
    Columns("A:I").Select 
    Columns("A:I").EntireColumn.AutoFit 
    Rows("4:4").Select 
    ActiveWindow.FreezePanes = True 
    Range("A1").Select 
End Sub 

回答

0

那么你有Application.CutCopyMode = False在那里。删除它,你应该没问题。

我冒昧地澄清了选择。在Excel VBA中,选择被认为是非常糟糕的风格,因为它们很慢并且不可靠。你通常可以得到通过更换

something.Select 
Selection.dosomething 

摆脱他们很容易与

something.dosomething 

冷冻有点棘手,虽然,我不知道它的任何理想的方式。

Sheets("Midwest Log").Range("A1").SpecialCells(xlCellTypeVisible).Copy 
Sheets.Add After:=Sheets(Sheets.Count) 
Sheets(Sheets.Count).Name = "MW Log" 
Sheets("MW Log").Paste 
Columns("A:I").AutoFit 
ActiveWindow.SplitRow = 3 
ActiveWindow.FreezePanes = True 
+0

该代码不起作用,说excel无法处理可用资源,然后仍然在粘贴线上给出错误消息。 – AngelOfDef

+0

也许这是你的工作表?它是否包含大量数据?如果没有,您是否在新/空白表上尝试过? – arcadeprecinct