Vba 指定范围中的某一列?
很抱歉,如果这真的很明显,但是我在连接两条信息时遇到了一些问题 我有一个单元格范围(例如,像A1)和第二个更大的范围(例如A1:C223)。我希望能够编写一些代码,使用一个单元格的列和较大范围的行数创建一个新的范围(因此在本例中,它将最终成为A1:A223)Vba 指定范围中的某一列?,vba,excel,range,Vba,Excel,Range,很抱歉,如果这真的很明显,但是我在连接两条信息时遇到了一些问题 我有一个单元格范围(例如,像A1)和第二个更大的范围(例如A1:C223)。我希望能够编写一些代码,使用一个单元格的列和较大范围的行数创建一个新的范围(因此在本例中,它将最终成为A1:A223) 我想在以后专门使用它来创建一个循环,但是我在创建这个范围时遇到了麻烦。任何帮助都将不胜感激。我想我知道你想要什么。看看这是否有效: Sub test() Dim rangeA As Range, rangeB As Range, combR
我想在以后专门使用它来创建一个循环,但是我在创建这个范围时遇到了麻烦。任何帮助都将不胜感激。我想我知道你想要什么。看看这是否有效:
Sub test()
Dim rangeA As Range, rangeB As Range, combRange As Range
Set rangeA = Range("A1")
Set rangeB = Range("A1:C223")
Set combRange = Range(Cells(rangeB.Rows(1).Row, rangeA.Column), _
Cells(rangeB(rangeB.Rows.Count, 1)(1).Row, rangeA.Column))
Debug.Print combRange.address
End Sub
编辑:这可能有点太多了,看起来@SiddharthRout在评论中也有一个很好的解决方案:D你的意思是像这样的
范围(“A1:a”和(范围(“A1:C223”).Row+Range(“A1:C223”).Rows.Count-1”).Address
或者让它成为通用的范围(“A1:a”和(rng.Row+rng.Count-1)).Address
其中rng
是您的第二个范围感谢Siddharth的帮助!我在下面的答案中使用了代码,但我想感谢您抽出时间来帮助我。:)FWIW-rangeB.Rows(1).Row
简化为rangeB.Row
(因为它默认作用于范围中的第一个单元格),以及rangeB(rangeB.Rows.Count,1)(1)。Row
可以是rangeB.Row+rangeB.Rows.Count-1
,谢谢!我使用了您最初输入的代码,但稍微修改了一下以获得正确的范围(范围A是A1,范围B是大范围):Set comborange=range(单元格(RangeA.Row,RangeA.Column),单元格(RangeB.Rows.Count,RangeA.Column))
,非常感谢您的帮助:D@ElAsado小心你的建议代码-如果rangeA
是Range(“A6”)
,而rangeB
是Range(“A3:C12”)
,那么你的结果将等同于Range(“A6:A10”)
——我认为这不是你想要的。还请注意,单元格(RangeA.Row,RangeA.Column)
可以简化为RangeA
。