Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 指定范围中的某一列?_Vba_Excel_Range - Fatal编程技术网

Vba 指定范围中的某一列?

Vba 指定范围中的某一列?,vba,excel,range,Vba,Excel,Range,很抱歉,如果这真的很明显,但是我在连接两条信息时遇到了一些问题 我有一个单元格范围(例如,像A1)和第二个更大的范围(例如A1:C223)。我希望能够编写一些代码,使用一个单元格的列和较大范围的行数创建一个新的范围(因此在本例中,它将最终成为A1:A223) 我想在以后专门使用它来创建一个循环,但是我在创建这个范围时遇到了麻烦。任何帮助都将不胜感激。我想我知道你想要什么。看看这是否有效: Sub test() Dim rangeA As Range, rangeB As Range, combR

很抱歉,如果这真的很明显,但是我在连接两条信息时遇到了一些问题

我有一个单元格范围(例如,像A1)和第二个更大的范围(例如A1:C223)。我希望能够编写一些代码,使用一个单元格的列和较大范围的行数创建一个新的范围(因此在本例中,它将最终成为A1:A223)


我想在以后专门使用它来创建一个循环,但是我在创建这个范围时遇到了麻烦。任何帮助都将不胜感激。

我想我知道你想要什么。看看这是否有效:

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