【问题标题】:Hide Columns with Condition VBA隐藏具有条件 VBA 的列
【发布时间】:2021-02-22 09:54:31
【问题描述】:

我正在尝试在某个单元格上显示带有“注册”的列, 并在没有“注册”的情况下隐藏其他人。

首先隐藏第 6 到 58 列

我使用了下面的代码,得到了部分结果。

Sub Info_Register()

Dim s As Integer

For s = 6 To 58
   If Cells(13, s).Value = "Register" Then
   Columns(s).Hidden = False
   End If
Next s

End Sub

为什么我说部分结果,因为我总是在下面的代码部分得到错误类型不匹配。

If Cells(13, s).Value = "Register" Then

不确定哪种类型是正确的,需要帮助才能使用正确的类型。

样本数据:

State             AL            HI                 CA                  NY
Status            Register      Don't register     Incomplete Data     Register
Name              Person A      Person B           Person C            Person D
Contact Number    1234567       6789043            6836281             4267889
Email Address     a@xyz.com     b@xyz.com          c@xyz.com           d@xyz.com

【问题讨论】:

  • 我试过你的代码,它运行良好,没有任何错误。如果您的目标是隐藏没有“注册”字符串的列,那么我会这样做:If Cells(13, s).Value <> "Register" Then Columns(s).Hidden = True End If
  • 你能分享你的文件吗?图像还是什么?看看我能不能帮你解决你的错误。
  • 文件有点大,但我可以放一些示例数据
  • 你试过我分享给你的代码了吗?我认为你不应该对那个有问题。
  • 我已经尝试了代码,但我仍然得到类型不匹配的错误。

标签: excel vba show-hide


【解决方案1】:

您的一个变量具有不同的类型,例如整数,并且您正在使用字符串测试该变量,此时您会收到不匹配错误。

在窗口顶部的菜单上,单击“调试”,然后单击“步入”按钮。您也可以使用断点,如果您知道错误发生的位置,请使用 Locals 窗口确定哪个变量是错误的变量。

【讨论】:

  • 你如何使用本地窗口?
  • 当您使用 Step Into 或创建断点,然后运行 ​​Step Into 或到断点时,locals 窗口将在底部打开以显示该点的变量及其值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多