excel - 跨工作簿复制单元格不像以前那样工作
问题描述
我在以前的宏中使用了相同的子程序,它工作得很好,但现在它根本行不通。
Public inputFile, outputFile as Worksheet
sub copy()
Set inputFile = excel.Workbooks.Open(get_file(".xlsb", fullpath:=True))
Set outputFile = Workbooks("Sales_Report.xlsm")
inputFile.Sheets("Planilha1").Activate 'error: Method or data member not found (highlights ".Sheets")
inputFile.Sheets("Planilha1").Cells.Select
inputFile.Sheets("Planilha1").Cells.Copy
outputFile.Sheets("Vales").Activate
outputFile.Sheets("Vales").Select.Cells
Selection.Clear
outputFile.Sheets("Vales").Range("A3").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
end sub
一旦我运行宏,就会显示错误:找不到方法或数据成员,然后突出显示该Sheets
方法。我尝试将其更改为inputfile.Worksheets("Vales")
并使变量不公开,但仍然无效。
解决方案
Public inputFile, outputFile as Worksheet '<-- WORKSHEET
Set outputFile = Workbooks("Sales_Report.xlsm") '<-- WORKBOOK
您在这里的变量类型不匹配。注意OutputFile
被声明为 aWorksheet
并且在您的宏中您将此变量分配给 aWorkbook
由于这是一个工作表变量,因此诸如此类的对象Sheets
不可用,因此您的错误。
边注
您的公共变量 decliration 可能没有按照您认为的方式工作。变量类型需要一一分配(叹气)。在您的声明中,您实际上声明了如下变量:
inputFile = Variant
outputFile = Worksheet
但我希望你真的想要
Public inputFile as Workbook, outputFile as Workbook
推荐阅读
- c# - 你如何制作一个倒数计时器(包括毫秒分钟和秒)c#
- python - 将列表附加到列表列表
- reactjs - 如何在任何.scss 文件中使用tailwind 的@apply 指令,而不是仅使用它的主tailwind 文件(在React 中)?
- angular - HTML 中的 Angular 2+ 组件文档预览
- apache-spark - 使用pyspark同时进行聚合和特征提取
- firebase - 安装:无法处理请求。离线申请。firebase 的(安装/应用离线)错误
- android - ImageView 不会替换之前在 RecyclerView Adapter 中使用的 Drawable
- flutter - 无法使用 Navigator.push() 使用电子邮件和密码登录到 Flutter 中的其他窗口
- audio - 在 Arduino 上播放多个连续音调?
- javascript - 使用 onClick 更新 Javascript 变量