arrays - 在 Excel 中使用 VBA,如何隐藏没有在数组中指定标题的列?
问题描述
我有一个很大的电子表格,我想隐藏不太重要的列。我能够编写代码来删除不必要的列,但决定我宁愿隐藏这些而不是删除它们。不幸的是,代码返回了一个错误。如何使用指定的标题名称隐藏列?
下面是我编写的代码,用于删除与数组中指定的标题不匹配的列。如何编辑它以隐藏列而不是删除它们?
Sub Delete_Rearrange() 'deletes unnecessary columns, then rearranges columns
Dim I As Long, e As Long, n As Long
Application.ScreenUpdating = False
e = Cells(1, Columns.Count).End(xlToLeft).Column
For I = e To 1 Step -1
Select Case Cells(1, I).Value
Case "accrue_mkt_disc_elect", "accrued_oid", "error", "accrued_unrealized_mkt_disc", "acq_dt", "acq_prem", "amort_prem_elect", "bond_prem", "Currency_code", "END_DT", "Error", "exc_rte", "fmv_as_of_dt_of_gf", "gf_dt", "gf_or_inh_in", "include_mkt_disc_inc_elect", "isn_sec_iss_id", "iso_crr_cd", "last_adj_dt", "mkt_disc", "rc_con_in", "rv_fm_cus_at_nm", "sb_fm_nm", "spot_rte_elect", "tl_cur_cs", "tl_og_cs", "tl_qty", "trf_initial_dt", "trf_sett_dt", "Error"
On Error Resume Next
n = WorksheetFunction.Match(Cells(1, I), Range(Cells(1, I - 1), Cells(1, 1)), False)
If Err = 0 Then Columns(I).Delete
On Error GoTo 0
Case Else
Columns(I).Delete
End Select
Next I
Application.ScreenUpdating = True
End Sub
如果我在上面的代码中将删除更改为隐藏,我会收到错误
“范围类的隐藏方法失败”
,引用Case Else Columns (I).Hidden
代码末尾附近的行。
解决方案
正确的用法是Columns(I).Hidden = True
推荐阅读
- javascript - 反应:路由器进程问题
- objective-c - Xcode 错误消息:“'UIAlertAction' 没有可见的@interface 声明选择器....”
- javascript - Highchart 示例在单独的 html 页面中不起作用
- javascript - React:在另一个组件中使用组件
- api - CURL Tableau 休息 API
- javascript - HTML 锚发送请求但不关注链接
- android - iOS 配置文件是否类似于 Android 清单文件
- c# - Azure 服务队列的批处理或取消处理
- python - 如何重新启动 Airflow 网络服务器和调度程序?
- mysql - LEAD 是 MySQL 中的保留字吗?