将范围复制到新的工作簿 FileDialog 提示不起作用
Posted
技术标签:
【中文标题】将范围复制到新的工作簿 FileDialog 提示不起作用【英文标题】:Copying Range into new Workbook FileDialog prompt not working 【发布时间】:2021-11-24 13:46:14 【问题描述】:我正在尝试将一些特定单元格复制到运行 VBA 脚本时提示我创建的新工作簿。我一直在 wsI.Range("Y2:AF2882) 上收到 Object 不支持此属性或方法,我的代码有什么问题?
Option Explicit
Sub Export1()
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Dim Filename As Variant
Set wbI = ThisWorkbook
Set wbO = Workbooks.Add
Filename = Application.GetSaveAsFilename(Filename, "Excelfile (*.xlsx), *.xlsx")
With wbO
Set wsO = wbO.Sheets("Ark1")
Set wsI = wbI.Sheets("SVK stationer")
.SaveAs Filename
wsI.Range("Y2:AF2882") _
.AutoFilter Field:=1, Criteria1:="<>"
.SpecialCells(xlCellTypeVisible).Copy
wsO.Range("A1").PasteSpecial (xlPasteValuesAndNumberFormats)
End With
End Sub
【问题讨论】:
wsI .Range("Y2:AF2882")
中有一个空格,在wsI
之后,如您所见(从您的代码中复制)。您是从模块中复制代码还是手动编写的?应该是wsI.Range("Y2:AF2882") _
。
否则代码行没有任何意义。它应该在下一个代码行继续。这就是“_”字符的意思。
我复制了它,但我想我一开始没有空格,但缺少_
。我已经添加了,但现在我在 .SpecialCells(xlCellTypeVisible).Copy 中遇到了同样的错误。可能是一个愚蠢的问题,但在那之前我还需要_
吗?
你按照我的建议测试了吗?
您是否从某个地方复制了代码?我试图推断缺少什么。该代码可能尝试使用With wsI.Range("Y2:AF2882")
(没有结尾的“_”)后跟以点开头的两行,但它在.SpecialCells(xlCellTypeVisible).Copy
之后错过了End With
,我认为......
【参考方案1】:
更新re cmets
Option Explicit
Sub Export1()
Dim wb As Workbook
Set wb = Workbooks.Add
wb.Sheets(1).Name = "Arki"
With ThisWorkbook.Sheets("SVK stationer").Range("Y2:AF2882")
.AutoFilter Field:=1, Criteria1:="<>"
.SpecialCells(xlCellTypeVisible).Copy
wb.Sheets(1).Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
wb.SaveAs Application.GetSaveAsFilename("", "Excelfile (*.xlsx), *.xlsx")
'wb.Close False
End With
End Sub
【讨论】:
以上是关于将范围复制到新的工作簿 FileDialog 提示不起作用的主要内容,如果未能解决你的问题,请参考以下文章