我有一个很大的Excel文件,我必须评估它。我正在尝试自动执行这项任务。Excel文件包含许多形状(文本框)和注释。我需要评估文本框,但忽略注释。显然,当我使用for each循环遍历形状时,我也得到了注释。有没有一种方法可以忽略评论。下面是我的代码:
For Each shp In ActiveSheet.Shapes
On Error GoTo NextShape
If InStr(shp.Name, ", ") Then
splitName = Split(shp.Name, ", ")
If splitName(UBound(splitName)) = "FS" Then
check_codes_in_Textbox shp
End If
End If
NextShape:
If Err.Number <> 0 Then MsgBox (Err.Description)
Next在我的Excel文件中,许多文本框的名称中都有",FS“,这就是我尝试使用InStr函数的原因,但这种方式有点不方便。
有没有一种循环遍历形状而不是遍历注释的方法?
发布于 2020-07-17 18:18:02
您可以使用shp.Type
For Each shp In ActiveSheet.Shapes
On Error GoTo NextShape
If InStr(shp.Name, ", ") And shp.Type <> 4 Then 'type 4 is commment, type 17 is text box for example etc... Check with debug.print shp.Type what is current shape type
splitName = Split(shp.Name, ", ")
If splitName(UBound(splitName)) = "FS" Then
check_codes_in_Textbox shp
End If
End If
NextShape:
If Err.Number <> 0 Then MsgBox (Err.Description)
Nexthttps://stackoverflow.com/questions/62951831
复制相似问题