gpt4 book ai didi

vba - 如何在Variable中存储不同的整个列?

转载 作者:行者123 更新时间:2023-12-02 10:59:56 25 4
gpt4 key购买 nike

这是我到目前为止的内容:

    Set cell = Cells.Find(What:="ABC", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)

Set cell2 = Cells.Find(What:="DEF", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Set cell3 = Cells.Find(What:="GHI", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)


i = Union(cell.EntireColumn, cell2.EntireColumn, cell3.EntireColumn).Value

Do Until i = ""
Selection.TextToColumns Destination:=Selection.Cells(1, 1), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=True, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=False, _
FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Loop

在这里我想做的是,我想存储列,然后我要进行格式化,直到设置完列为止。
但是我在运行时错误“13”下得到以下错误:类型不匹配。
i = Union(cell.EntireColumn, cell2.EntireColumn, cell3.EntireColumn).Value

请帮我。

最佳答案

正如Nathan所说的,当前行返回一个值数组。

i = Union(cell.EntireColumn, cell2.EntireColumn, cell3.EntireColumn).Value

您试图通过创建 3 -维数组来对付它(我猜对了吗?)。
xx = Array(cell.EntireColumn, cell2.EntireColumn, cell3.EntireColumn)

具有3个单独的列不会定义 3 维数组。您合并了3列,并生成了一个表,这意味着它仍然是 2 -维数组(任何x = range(****)的构造。值返回 2 -维数组,即使您指定了范围由一栏组成)。
您需要做的就是遍历这个新的 2 维数组,并检查它是否为空。

附言您可能希望一次格式化具有计算的行数的范围的并集格式(在每列中查找最后一个非空单元格),而不是循环遍历 2 -维数组中的每个单元格。

关于vba - 如何在Variable中存储不同的整个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45163835/

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