我使用VB.net代码来操作Excel文档。我试图抓住一个特定行中包含的一系列单元格。我不知道特定的结束单元格,我只需要包含该行中值的所有单元格。
以下是我到目前为止所做的一个基本示例:
Dim rngRange as Excel.Range
Dim wksXLWorksheet As Excel.Worksheet
rngRange = wksXLWorksheet.Range(" A1")。EntireRow
我知道那行包含Range" A1" (这是一个单元格)是我想要的行,所以我使用EntireRow属性返回整行。它返回所有单元格,包括未使用的单元格,因此在单元格中超过16k,其中大部分为空。
如何选择只使用过细胞的范围?我不想使用UsedRange,因为它抓住了所有东西,我只想要一行,而且只想到单元格不再包含数据的地方。
另外,如果我选择这样的有限范围,它会对资源产生或多或少的影响吗?我认为选择小范围会影响较小,但我可能错了。
答案 0 :(得分:1)
使用.End属性,例如范围( “A1”)。完(xlToRight)。
http://msdn.microsoft.com/en-us/library/office/ff839539.aspx
答案 1 :(得分:0)
Excel.Application对象具有Intersect方法,工作表具有UsedRange属性。
Dim rngRange as Excel.Range
Dim wksXLWorksheet As Excel.Worksheet
Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
rngRange = Excel.Intersect(wksXLWorksheet.Range("1:1"), wksXLWorksheet.UsedRange)
或者,在限定构成范围的单元格时,使用起点和终点定义范围。
Dim rngRange as Excel.Range
Dim wksXLWorksheet As Excel.Worksheet
rngRange = wksXLWorksheet.Range(wksXLWorksheet.Range("A1"), wksXLWorksheet.Range("XFD1").End(xlToLeft))