【问题标题】:generating a range from other cells excel vba从其他单元格生成范围excel vba
【发布时间】:2016-02-26 21:33:03
【问题描述】:

我不确定这是否可以开始。

我正在遍历一些单元格,在某些时候我想定义一个这样的范围:

Set rngtmp = Range(f.Column & c.Row & ":" & g.Column & c.Row)

f 和 g 指向单个单元格,它们没问题(我的意思是它们工作得很好),因为我也在做一些操作,将它们作为参考并且它们工作。

c 是我当前所在的单元格(因为我正在遍历所有单元格)。范围总是空的,我不明白为什么。

f.column 小于 g.column

【问题讨论】:

标签: vba excel range


【解决方案1】:

您可以使用.Cells() property

Dim wb As Workbook, ws As Worksheet
Dim rngTmp As Range

Set wb = ThisWorkbook
Set ws = wb.Sheets(1)

With ws
    Set rngTmp = .Range(.Cells(c.Row, f.Column), .Cells(c.Row, g.Column))
End With

您不能使用整数来确定范围对象的大小;您需要使用 .Cells 属性才能使用整数来构建范围。

编辑:

正如@Scott Holtzman 提到的,您必须首先将.Row 传递给.Column,然后将.Cells 传递给.Cells(与您在问题中的显示方式相反)。

正如@eirikdaude 提到的,您可以使用.Range,然后使用.Resize property;这允许您在范围内使用整数,而不必使用.Cells 属性。这是我在将数组写入工作表时通常使用的一种方法。

【讨论】:

  • 还值得注意的是如何先行属性,然后是列,因为 OP 有其他方式)
  • 你可以使用整数来确定范围对象的大小,但是像你一样做会更简单;-)
  • 谢谢两位 - 我已经更新了我的答案以包含您的建议。 @eirikdaude 我假设您指的是 .Resize 属性。否则我会很想知道如何将整数与范围对象一起使用!
  • 嗯,例如activesheet.range(chr(i+65) & 2).select 有效,但正如我所说,在这种情况下使用cells 通常更容易。例如,对于 i > 26,上述方法可能会遇到麻烦(小写字母是在大写字母之后还是在大写字母之前)。更多的是指出某事可以完成,尽管这样做几乎从来都不是一个好主意;)
  • 感谢您的确认。我同意 - 使用这种方法是不切实际的,但它肯定是可能的。
【解决方案2】:

使用Cells 来引用单个单元格。然后,您可以将它们加入一个范围:

Sub Test()
    Dim rngtmp As Range
    Dim f As Range
    Dim c As Range
    Dim g As Range

    With ThisWorkbook.Worksheets("Sheet1")
        Set f = .Range("A1")
        Set c = .Range("D8")
        Set g = .Range("L22")
        Set rngtmp = .Range(.Cells(c.Row, f.Column), .Cells(g.Column, c.Row))
    End With
End Sub

请注意,由于 With...End With 块,.Range.Cells 将引用 Sheet1。
https://msdn.microsoft.com/en-us/library/wc500chb.aspx

【讨论】:

    【解决方案3】:

    您不能使用.Column,因为它返回列的整数索引,而不是字母。

    尝试一些类似的东西

    set rngtmp = Range(Cells(f.Row, c.Column), Cells(g.Row, c.Column))

    当然,您需要参考工作表和单元格等所需的内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      相关资源
      最近更新 更多