【问题标题】:vba import cells from other workbooks errorvba 从其他工作簿导入单元格错误
【发布时间】:2015-10-10 02:40:05
【问题描述】:

我正在尝试从其他工作簿复制某些范围的单元格,但出现错误:

'runtime '1004' error 
Error defined by application or object

如果我尝试使用“range(cells(i,j), cells(k,h))”sintax 而不是 range(“A1:Z1”)。即,在下面的代码中,“PASTE 1”行产生错误,而“PASTE 2”行运行顺利(显然我不想使用第二个,因为我需要在不同的范围内运行循环)。

Sub Importa()

Dim directory As String
Dim fileName  As String
Dim wbfrom    As Workbook
Dim wbto    As Workbook

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "mydirectory"
fileName = Dir(directory & "*.xl??")   'find the first *.xl?? file; '  wildcards: multiple character (*) single character (?)
Set wbto = ThisWorkbook
Set wbfrom = Workbooks.Open(directory & fileName, False, True)

' copy some cells
wbfrom.Sheets(1).Range(Cells(9, 6), Cells(15, 6)).Copy

'PASTE 1
wbto.Sheets(1).Range(Cells(9, 1), Cells(15, 1)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'PASTE 2
'wbto.Sheets(1).Range("A1:A8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False


wbfrom.Close SaveChanges:=False
'Turn on screen updating and displaying alerts again
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

【问题讨论】:

  • 欢迎,这个问题和今天刚问的很相似。看here
  • 非常相似,很好的捕捉@ScottCraner。

标签: vba excel range copy-paste cells


【解决方案1】:

问题是您需要将Cells 限定为特定的工作表/工作簿。否则,它隐含属于ActiveSheet,并且由于wbFrom 在运行时处于活动状态,因此该范围不能存在(因为一个工作表上的单元格不能定义另一个工作表上的范围)

两种处理方法,一种是像这样限定Cells

With wbto.Sheets(1)
    .Range(.Cells(9, 1), .Cells(15, 1)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With

另一种是从单元格中强制地址:

wbto.Sheets(1).Range(Cells(9, 1).Address, Cells(15, 1).Address).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

我更喜欢第一个选项,因为它往往更具动态性,并且在以后需要时易于阅读和修改。

【讨论】:

    猜你喜欢
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    相关资源
    最近更新 更多