gpt4 book ai didi

excel - 将 For Each 中的 Variant 转换为范围

转载 作者:行者123 更新时间:2023-12-04 22:13:24 25 4
gpt4 key购买 nike

有没有办法在 VBA 中将 Variant 变量转换为 Range 变量?
让我解释一下为什么我需要这样做。
我用范围作为键填充字典,新值作为项目:

        dChanges.add .cells(rowNewTask, rngTaskId.column), TaskId
dChanges.add .cells(rowNewTask, rngNumSection.column), numSection
dChanges.add .cells(rowNewTask, rngSection.column), Section
dChanges.add .cells(rowNewTask, rngMajorTask.column), majorTask
dChanges.add .cells(rowNewTask, rngSubTask.column), subTask
dChanges.add .cells(rowNewTask, rngUnitType.column), unitType
然后对于每个项目,我使用一些函数应用更改:
        For Each RngI In dChanges
RngI.value = dChanges(RngI)
highlightCell RngI
Next
RngI 需要是 Variant 类型,所以我可以在 For 循环中使用它,但是 highlightCell RngI要求 RngI 是 Range。

最佳答案

Dim RngI As Range适用于包含范围的字典。
示例代码:

Sub foobar()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary

d.Add Sheet1.Range("A1"), "foo"
d.Add Sheet1.Range("A2"), "bar"

Dim RngI As Range
For Each RngI In d
RngI.Value = d(RngI)
Next
End Sub
这会将“foo”和“bar”写入单元格 A1 和 A2。

关于excel - 将 For Each 中的 Variant 转换为范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71588881/

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