相关疑难解决方法(0)

Range()vs Cells()vs Range.Cells()

我知道Range()Cells()属性是访问工作表上的单元格的等效方法.但是,何时使用Range.Cells()这种组合是明智的?

我遇到了他们使用过的一个例子Range("A1").Resize(2,3).cells.value.这相当于Range("A1").Resize(2,3).value

如果没有,前者的优势是什么?

excel vba excel-vba

8
推荐指数
2
解决办法
3658
查看次数

"Value"实际上是Range对象的默认属性吗?

在我开始之前,我想说我意识到你不应该依赖默认属性而我不会,但这很奇怪.我一直都读到这valueRangeObject 的默认属性,因此为什么会这样:

Range("A1") = 2
Run Code Online (Sandbox Code Playgroud)

但是,页面声称这item是默认属性Range.

此外,我做的这个子将建议这cells是默认属性:

Sub defaultprop()

Dim c As Variant


For Each c In Range("A1:A2")

    Debug.Print c.value

Next c

For Each c In Range("A1:A2").value

    Debug.Print c

Next c


End Sub
Run Code Online (Sandbox Code Playgroud)

vba

7
推荐指数
2
解决办法
2035
查看次数

为什么 For Each over Range.Columns(1) 不迭代单元格?

如果范围是由地址指定的,我可以迭代一系列单元格以分别对每个单元格进行操作:

Dim cell as Range
For Each cell In Range("A1:A10")
  debug.print cell.Address
Next cell
Run Code Online (Sandbox Code Playgroud)

产生预期的输出:

$A$1
$A$2
... etc
Run Code Online (Sandbox Code Playgroud)

但是,当我从范围集合中指定一列时Columns,迭代仅对整个列运行一次:

For Each cell In UsedRange.Columns(1)
    Debug.Print cell.Address
Next cell
Run Code Online (Sandbox Code Playgroud)

仅产生一个输出,包含整列:

$A$1:$A$20
Run Code Online (Sandbox Code Playgroud)

不是UsedRange.Columns(1)一个Range物体吗?如果不是的话,那是什么??

我已经阅读了关于行/列作为范围的讨论以及Range vs Range.Cells 的讨论,但我仍然可以弄清楚如何迭代UsedRange.Columns(1).

excel vba

3
推荐指数
1
解决办法
375
查看次数

标签 统计

vba ×3

excel ×2

excel-vba ×1