gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:12:22 25 4
gpt4 key购买 nike

我目前正在开发一种工具,获取一些数据,但没有获取公式或其他格式。只是纯文本。但是它给了我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

¹ 见 How to avoid using Select in Excel VBA macros了解更多摆脱依赖选择和激活来实现目标的方法。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com