gpt4 book ai didi

Excel vba : possible bug when creating a range as a sub-range of another range

转载 作者:行者123 更新时间:2023-12-04 20:47:16 28 4
gpt4 key购买 nike

我创建了以下 sub 来简单地说明问题。我将事件工作表的范围 A2:E10 分配给范围变量。然后,对于另一个范围变量,我将这个范围的子范围,单元格 (1, 1) 分配给 (3, 3)。

我原以为这将包括 A2 到 C4 的范围(因为 A2 是第一列,较大范围的第一行)。但是,当我调用每个范围的 .Row 方法时
第一个单元格,我得到不同的结果:较大的范围 r 返回“2”,而较小的范围 rSub 返回“3”。

(.Row 方法返回调用它的范围的绝对行)

我希望这两个调用都返回 2,因为它们都应该引用单元格 A2。谁能解释为什么不是这样?

*编辑:我刚刚更改了 sub 以便它调用每个范围的第一个单元格的 .Column 方法,就像它调用 .Row 方法一样。如您所料,这将为两个范围返回“1”。

Sub test()
Dim r As Range
Set r = Range("A2:E10")

MsgBox r.Cells(1).Row '= 2

Dim rSub As Range
With r
Set rSub = .Range(.Cells(1, 1), .Cells(3, 3))
End With

MsgBox rSub.Cells(1).Row '= 3
End Sub

最佳答案

好奇怪~

我从您的代码中得到了相同的结果。我猜结果来自以下代码:

设置 rSub = .Range(.Cells(1, 1), .Cells(3, 3))

当我在 Range 之前删除点时,我得到了我们预期的结果

设置 rSub = Range(.Cells(1, 1), .Cells(3, 3)))

无论如何,我不知道为什么会这样。

关于Excel vba : possible bug when creating a range as a sub-range of another range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729179/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com