我正在尝试使用 vba 在工作表中隐藏 A1 列。但是我收到一个错误“无法设置范围类的隐藏属性”
这是我的代码:
ActiveWorkbook.Sheets("Project").Activate
ActiveSheet.Unprotect password
Dim cmt As comment
Dim iRow As Integer
For iRow = 1 To Application.WorksheetFunction.CountA(Columns(1))
Set cmt = Cells(iRow, 1).comment
If Not cmt Is Nothing Then
Cells(iRow + 1, 1) = Cells(iRow, 1).comment.Text
Cells(iRow, 1).comment.Delete
Else
MsgBox "No Comments"
End If
Next iRow
MsgBox ActiveSheet.ProtectionMode
ActiveSheet.Columns(1).Select
Selection.EntireColumn.Hidden = True
我在行中遇到错误
Selection.EntireColumn.Hidden = True
我已包含MsgBox以检查工作表是否受到保护以及该列的单元格中是否有任何可用的注释。
第一个 MsgBox 返回为 No Comments,第二个返回为 false。
所以工作表不受保护,评论也不存在。
对为什么会收到错误感到困惑。
请帮帮我
更新:
我已经像这样更改了我的代码:
ActiveWorkbook.Sheets("Project").Activate
Dim sh As Shape
Dim rangeToTest As Range
Dim lRow As Long
Dim c As Range
lRow = ActiveSheet.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
Set rangeToTest = ActiveSheet.Range("A1:A" & lRow)
For Each c In rangeToTest
For Each sh In ActiveSheet.Shapes
sh.Delete
Next sh
Next c
ActiveSheet.Range("A1").EntireColumn.Hidden = True
它奏效了。但是我已经向其他列标题添加了注释,我将鼠标悬停在单元格上。现在收不到评论了。。
删除形状是否与评论有关?