gpt4 book ai didi

vba - 避免在各种工作表中设置单元格时出现循环

转载 作者:行者123 更新时间:2023-12-02 07:58:29 24 4
gpt4 key购买 nike

我可以将多个工作表中的特定单元格设置为相同的值,而无需使用类似以下内容的循环:

Sub ThisWorks()
Sheets(Array("Sheet1", "Sheet3")).Select
Sheets("Sheet1").Activate
Range("B9").Select
ActiveCell.FormulaR1C1 = "=""x"""
End Sub

运行上面的宏会在 Array() 中包含的工作表中的所有 B9 中放置相同的值

我试图通过创建和使用与上述代码等效的对象来完成同样的事情:

Sub ThisPartiallyWorks()
Dim obj As Object
Set obj = Sheets(Array("Sheet1", "Sheet3"))
obj.Select
Range("A2").Formula = "=""x"""
End Sub

运行时没有错误,但只有一个工作表在所需的单元格中获得 ="x"

我做错了什么?

编辑#1

瓦西里的帖子给了我线索......这个版本似乎有效:

Sub Finally()
Dim obj As Object
Set obj = Sheets(Array("Sheet1", "Sheet3"))
obj.Select
obj(1).Activate
Range("B9").Select
ActiveCell.FormulaR1C1 = "=""x"""
End Sub

尽管这似乎违反了Select可以避免的概念。

最佳答案

我知道这并不完全是您想要的,但作为减少编码的选项之一。

Sub test()
Dim obj As Object, i&
Set obj = Sheets(Array("Sheet1", "Sheet3"))
For i = 1 To obj.Count: obj(i).[B9].Formula = "=""x""": Next
End Sub

EDIT#1

可能看起来像这样

Sub Finally()
Dim obj As Object
Set obj = Sheets(Array("Sheet1", "Sheet3"))
obj.Select: obj(1).[B9].Activate: ActiveCell.Formula = "=""x"""
End Sub

关于vba - 避免在各种工作表中设置单元格时出现循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421971/

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