excel - 1004错误(范围类的选择方法失败)

标签 excel vba methods range

我目前正在开发一个工具,获取一些数据,但没有获取公式或其他格式。只是纯文本。但是它给了我 1004 的错误。

这是我的代码:

Sub WBS()
    Dim sourceColumn As Range, targetColumn As Range

    Set sourceColumn = Workbooks("totalcosts.xlsm").Worksheets(3).Range("A3:A300")
    Set targetColumn = Workbooks("Backing sheet.xlsm").Worksheets(2).Range("C6:C300")

    sourceColumn.Copy
    targetColumn.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    Application.CutCopyMode = False
    Call Resource_Name
End Sub

它总是在 targetcolumn.select 上给我错误

但是当我用这段代码复制粘贴就行了,

*"sourceColumn.Copy destination=targetcolumn"*

它粘贴了我需要的数据。但是,它复制公式而不是值。

最佳答案

将您的目的地剪切为单个单元格(左上角),然后让粘贴操作填充剩余部分。

Sub WBS()
    Dim sourceColumn As Range, targetColumn As Range

    Set sourceColumn = Workbooks("totalcosts.xlsm").Worksheets(3).Range("A3:A300")
    Set targetColumn = Workbooks("Backing sheet.xlsm").Worksheets(2).Range("C6")

    sourceColumn.Copy
    targetColumn.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                              SkipBlanks:=False, Transpose:=False

    Application.CutCopyMode = False
    Call Resource_Name
End Sub

使用Range.PasteSpecial method直接偏离目标范围。没有必要Range .Select首先使用它的方法。

因为您只传输Range.Value property ,直接值(value)转移将是更好的选择。

Sub WBS()
    Dim sourceColumn As Range, targetColumn As Range

    Set sourceColumn = Workbooks("totalcosts.xlsm").Worksheets(3).Range("A3:A300")
    Set targetColumn = Workbooks("Backing sheet.xlsm").Worksheets(2).Range("C6")

    with sourceColumn
        targetColumn.Resize(.Rows.Count, .Columns.Count) = .Value
    end with

    Call Resource_Name
End Sub

1 参见 How to avoid using Select in Excel VBA macros了解更多摆脱依赖 select 和 activate 来实现目标的方法。

关于excel - 1004错误(范围类的选择方法失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402740/

相关文章:

c# - 在当前实例中打开现有的 Excel 文件

ms-access - 微软 Access : An error in vba of my form

vba - 在 Vba excel 上突出显示搜索到的单词

java - 返回 ArrayList<file> 方法 java

c++ - 如何在方法模板中使用模板类型的引用传递参数?

javascript - 如何在 javascript 中运行对象的 onEvent 方法?

java - 如何使用 Java 中的 Apache POI 库对数据透视表数据进行排序

excel - 从变量命名工作表

c# - 下载文件时如何设置文件名?

excel - 在 Excel 中为 .txt 路径指定新文件夹