试图消除.激活和选择VBA,而在尝试设置范围时会获得错误1004



当我试图避免在源和目的地之间切换一系列复制/粘贴或pastepecial操作时,Excel VBA深受沮丧。

这是问题代码的片段:

Dim wbkSource As Workbook
Dim wbkDest As Workbook    
Dim rngOutput As Range    
Dim iCol As Integer ' Used for destination paste
Set wbkSource = ActiveWorkbook
Set wbkDest = ActiveWorkbook 'After adding destination workbook
    iCol = 1
    **Set rngOutput = wbkDest.Worksheets("Sheet1").Range(1, iCol)**

突出显示的行总是生成运行时错误1004,"应用程序定义或对象定义的错误"。

我做错了什么?我有代码依次激活每个工作簿,然后选择目标单元格,但这是如此丑陋和效率低下。

感谢您的任何建议。

a.s.h在评论中正确地归功于他,但看来他没有时间发布全部答复,而是选择了评论。

范围是一个范围,并且单个单元格也可以是一个范围。

语法是:

Cells([rowindex],[columnindex])

和范围是

Range([cell1],[cell2])

以下内容也可以接受(看起来很丑)

Range(Cells(1,1),Cells(2,2))  'Equivalent to 
Range("A1:B2")
'Also this crazy mess works too
Dim intRow As Integer: intRow = 1
Cells("A" & intRow)
Range("A1:B" & intRow)

和纠正您的问题的最终答案:

Set rngOutput = wbkDest.Worksheets("Sheet1").Cells(1, iCol)

我希望这会有所帮助,很高兴您摆脱了。激活和选择!

最新更新