tee*_*pee 2 excel vba range excel-vba cells
我无法将值从一个工作簿范围分配到当前工作簿中的范围.当我使用Range("A1:C1")分配我的范围时,此代码可以正常工作,但是当使用Range(Cells(1,1),Cells(1,3))定义我的范围时,该函数将失败:
Sub CopyRange()
Dim inputExcel As Excel.Application, BookA As Workbook
Path_A = ThisWorkbook.Path & "\Book_A.xlsx"
Set inputExcel = New Excel.Application
Set BookA = inputExcel.Workbooks.Open(Path_A, ReadOnly:=True)
'THIS WORKS:
ThisWorkbook.Sheets(1).Range("A1:C1").Value = _
BookA.Sheets(1).Range("A1:C1").Value
'THIS DOESN'T WORK:
ThisWorkbook.Sheets(1).Range(Cells(1, 1), Cells(1, 3)).Value = _
BookA.Sheets(1).Range(Cells(1, 1), Cells(1, 3)).Value
End Sub
Run Code Online (Sandbox Code Playgroud)
我知道这必须是一个简单的语法问题,但我无法弄明白.如何使用"单元格"工作来获取范围分配?
您还必须使用工作表对象限定Cell调用:
ThisWorkbook.Sheets(1).Range(ThisWorkbook.Sheets(1).Cells(1, 1), ThisWorkbook.Sheets(1).Cells(1, 3)).Value = _
BookA.Sheets(1).Range(BookA.Sheets(1).Cells(1, 1), BookA.Sheets(1).Cells(1, 3)).Value
Run Code Online (Sandbox Code Playgroud)
对于像这样的连续范围,你也可以使用Resize:
ThisWorkbook.Sheets(1).Cells(1, 1).Resize(, 3).Value = _
BookA.Sheets(1).Cells(1, 1).Resize(, 3).Value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30582 次 |
| 最近记录: |