【发布时间】:2015-07-01 09:17:44
【问题描述】:
我在加载项中编写了一个宏,当您选择范围时会更新状态栏:
此宏(包含在插件的“thisWorkbook”中,带有SheetSelectionChange) 在状态栏上写入选择中第一列和最后一列的矩阵和乘积。
它工作得很好,但如果有一个有源过滤器,我希望它跳过隐藏的单元格。
这是代码。
Private WithEvents App As Application
Private Sub App_SheetselectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim vStatus As Variant
Dim nCols As Long
Dim prod_vett As Variant
On Error GoTo err_gest_
With Target
nCols = .Columns.Count
If nCols > 1 Then
prod_vett = Application.Evaluate("sum(" & .Columns(1).Address & "*" & .Columns(nCols).Address & ")")
vStatus = "Prodotto vettoriale: " & prod_vett
End If
End With
err_gest_:
If Err.Number <> 0 Then vStatus = False
Application.StatusBar = vStatus
End Sub
Private Sub Workbook_Open()
Application.StatusBar = False
Set App = Application 'Instantiate application level events
End Sub
如果我使用 cicle,则会出现问题:如果选择工作表中的所有单元格,则宏太长而无法给出结果。 我尝试使用
With Target.SpecialCells(xlCellTypeVisible)
但它不起作用。 你有其他解决方案吗?
【问题讨论】: