【发布时间】:2014-05-27 15:14:09
【问题描述】:
我在尝试选择/复制工作表中的某些范围时遇到了问题。我已尽我所能缩小范围。
这很好用:
dataSheet.Cells(dRow, dataSheet.Range("IO_MODULES").Column).Select
这不是:
dataSheet.Range(Cells(dRow, dataSheet.Range("IO_MODULES").Column), Cells(dRow, dataSheet.Range("IO_MODULES").Column)).Select
这就是我想要做的:
dataSheet.Range(Cells(dRow, dataSheet.Range("IO_MODULES").Column), Cells(dRow, dataSheet.Range("MODULE_END").Column)).Copy Destination:= _
dataSheet.Range(Cells(dataSheet.Range("MODULE_1").Row + i - 1, dataSheet.Range("D_COUNT").Column + 1), Cells(dataSheet.Range("MODULE_1").Row + i - 1, dataSheet.Range("DATA_COL_END").Column))
我似乎误解了 Worksheet.Cells 和 Worksheet.Range 之间的关系。我需要做的是能够根据我命名的单元格的行号和列号选择一系列单元格。
【问题讨论】:
-
总的来说,你会想尽量避免使用
.Select——这里有一篇很好的文章:stackoverflow.com/questions/10714251/… -
Cells是一个不合格的范围对象,所以它总是被隐式定义为ActiveSheet.Cells。因此,dataSheet.Range(Cells(...会出现错误,除非dataSheet是ActiveSheet。 -
哇,不敢相信我忽略了这一点。不知道我在想什么像我一样使用 Cells。谢谢