gpt4 book ai didi

vba - 我可以使用 IsEmpty 来引用不同的工作表并隐藏列吗?

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

是否可以使用 IsEmpty 来引用与触发宏的位置不同的工作表上的单元格?另外,如果该查询的结果为 True,是否可以隐藏查询的列?

这是我到目前为止构建的内容:我的第一个版本是这样的:

If IsEmpty(L1) Then
Columns("L").EntireColumn.Hidden = True
Else
Columns("L").EntireColumn.Hidden = False
End If

足够简单。但是,只有当它从我希望查询/隐藏发生的工作表中触发时才有效。当我从不同的工作表启动宏时,它会隐藏那个工作表中的列(当然,duh)。

因此,在多次迭代和错误之后,我得到了这个:

If IsEmpty(Sheets("Results").Cells(10, 1).Value) Then
Worksheets("Results").Columns(10).EntireColumn.Hidden = True
Else
Worksheets("Results").Columns(10).EntireColumn.Hidden = False
End If

这至少不会从 VBA 中抛出任何错误。它也做了一个总的下蹲 Action 。 :$ 我开始怀疑是否可以在不同的工作表上使用 IsEmpty ?或者 EntireColumn.Hidden 命令?另外,鉴于我需要对 9 列运行此检查,也许有比 9 个 If/Then 语句更好的方法?

最佳答案

要避免第 1 行 9 列的循环,请使用 SpecialCells(xlCellTypeBlanks)。

dim blnks as range
with workSheets("Results")
with .range(.cells(1, "B"), .cells(1, "K"))
.entirecolumn.hidden = false
set blnks = .specialcells(xlCellTypeBlanks)
if not blnks is nothing then blnks.entirecolumn.hidden = true
end with
end with

本质上,这会取消隐藏所有 9 列,然后隐藏第一行中带有空白单元格的列。请注意,公式返回的零长度字符串(例如 "")与真正的空白单元格不同。

关于vba - 我可以使用 IsEmpty 来引用不同的工作表并隐藏列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46473317/

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