excel - 如何克服错误 1004 对象 _global 范围失败
问题描述
在这里,我试图将数据从一张表复制到另一张表,我需要从复制表中排除一个特定列
喜欢:认为我有 2 张来自 HSR 的工作表(名称为“组合”、“HSR”)我需要将所有数据复制到组合工作表中,不包括“D”列值
Dim ws As Worksheet
Dim ColumnLetter As Variant
Set ws = Sheets("HSR")
Worksheets("HSR").Select
lr = Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
lr2 = Sheets("Combined").Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
ColumnLetter = Split(ws.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Cells.Address(1, 0), "$")(0)
Range("A2:C" & lr).Copy Sheets("Combined").Range("A" & lr2 + 1)
Range("E2:ColumnLetter" & lr).Copy Sheets("Combined").Range("D" & lr2 + 1)
End Sub
我希望输出为,在工作表组合中,我不应该从 HSR 工作表中获取 D 列中的值
解决方案
ColumnLetter
是一个变量。您将其用作String
.
改变
Range("E2:ColumnLetter" & lr).Copy Sheets("Combined").Range("D" & lr2 + 1)
至
Range("E2:" & ColumnLetter & lr).Copy Sheets("Combined").Range("D" & lr2 + 1)
还有一些tips
lr = Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
如果不返回任何内容,lr2 = Sheets("Combined").Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
则会给您错误。如.Find 和 .FindNext.Find
所示处理它避免使用
.Select
. 您可能想查看如何避免在 Excel VBA 中使用 Select
推荐阅读
- macos - mac os 10.11 el capitan apache loacalhost/~username 404 not found
- gitlab - Webhook 执行错误:Hook 执行成功但返回 HTTP 400 missing_text_or_fallback_or_attachments
- validation - 在 Nativescript 数据表单中验证电子邮件
- go - 将 CreationTimeStamp 类型转换为字符串
- sql - 创建一个 ms sql 查询以从属于不同架构的表中获取数据
- python - 从文件和索引中提取
- c# - BOT 不使用 web-chat v4 框架调用 PromptDialog.Choice 中定义的 choiceSelection 方法
- hadoop - 在 Apache phoenix 中因意外原因无法建立索引
- java - 如何使用 Spring JmsListener 手动确认来自 ActiveMQ 的消息
- kdb - 将 csv 字符串转换为 csv 中的表格