excel - 如何将范围从某个单元格复制到某个列中的最后一个非空单元格
问题描述
我正在尝试将 Excel 表格从一个工作簿复制到另一个工作簿。尝试复制范围时出现运行时错误 1004,使用变量 x 来识别 F 列中的最后一个非空单元格。
Sub button_click()
Dim x As Long
x = Range("F100").End(xlUp).Row
Set NewBook = Workbooks.Add
Workbooks("wb").Worksheets("ws").Range("A1:F36").Copy 'works
Workbooks("wb").Worksheets("ws").Range(Cells(1,1), Cells(x, 6)).Copy 'does not work run, time error 1004
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues)
End Sub
我希望输出等于复制的范围。
解决方案
我的猜测是,这与Cells
这段代码中的引用Range(Cells(1,1), Cells(x, 6))
不符合工作簿的条件有关。
试试这个,也许:
Sub button_click()
Dim x As Long
Set NewBook = Workbooks.Add
With Workbooks("wb").Worksheets("ws")
x = .Range("F100").End(xlUp).Row
.Range(.Cells(1,1), .Cells(x, 6)).Copy
End With
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues)
End Sub
请注意,通过添加With...
语句然后包括Range(.Cells(
而不是Range(Cells(
我们现在明确说明我们所指的单元格在此工作表中。
希望这能解决问题!
推荐阅读
- javascript - AWS Lambda 提前结束(没有任何明确的返回或回调)
- unix - Unix 复制命令
- java - Spring-boot:run 有效,但 java-jar 无效
- objective-c - 文件中缺少所需的架构 armv7?问
- android - 无法解决:android studio 中的运行时
- node.js - Windows 10 中 NVM 的访问被拒绝问题
- ubuntu-16.04 - sudo apt-get 更新 Ubuntu 16.04 时出现 Bazel Key Expired Error
- ruby-on-rails - Rails 创建新表后出现错误
- ios - FCM 是直接发送推送通知还是向 APNS 发送消息?
- python - 将 Tensorflow 中除最大值之外的所有值归零