macros没有完全执行
所以我有以下的macros
Private Sub Worksheet_Change(ByVal Target As Range) BeginRow = 178 EndRow = 178 ChkCol = 8 For RowCnt = BeginRow To EndRow If IsError(Sheet1.Cells(RowCnt, ChkCol).Value) Then Sheet1.Cells(169, ChkCol).EntireRow.Hidden = True Sheet1.Cells(170, ChkCol).EntireRow.Hidden = True Sheet1.Cells(171, ChkCol).EntireRow.Hidden = True Sheet1.Cells(172, ChkCol).EntireRow.Hidden = True Sheet1.Cells(173, ChkCol).EntireRow.Hidden = True Sheet1.Cells(174, ChkCol).EntireRow.Hidden = True Sheet1.Cells(175, ChkCol).EntireRow.Hidden = True Sheet1.Cells(176, ChkCol).EntireRow.Hidden = True Sheet1.Cells(177, ChkCol).EntireRow.Hidden = True Sheet1.Cells(178, ChkCol).EntireRow.Hidden = True Sheet1.Cells(179, ChkCol).EntireRow.Hidden = True End If Next RowCnt For RowCnt = BeginRow To EndRow If Not IsError(Sheet1.Cells(RowCnt, ChkCol).Value) Then Sheet1.Cells(169, ChkCol).EntireRow.Hidden = False Sheet1.Cells(170, ChkCol).EntireRow.Hidden = False Sheet1.Cells(171, ChkCol).EntireRow.Hidden = False Sheet1.Cells(172, ChkCol).EntireRow.Hidden = False Sheet1.Cells(173, ChkCol).EntireRow.Hidden = False Sheet1.Cells(174, ChkCol).EntireRow.Hidden = False Sheet1.Cells(175, ChkCol).EntireRow.Hidden = False Sheet1.Cells(176, ChkCol).EntireRow.Hidden = False Sheet1.Cells(177, ChkCol).EntireRow.Hidden = False Sheet1.Cells(178, ChkCol).EntireRow.Hidden = False Sheet1.Cells(179, ChkCol).EntireRow.Hidden = False End If Next RowCnt End Sub
你可能做得更漂亮些,但是我对VBA来说还是比较新的。 公式H178具有以下input:
`=(H170+H171+H172+H173+H174+H175+H176+H177)/7`
然而,这些单元格H170,H171等从Sheet2获得它们的数据。也就是说,当H170出错时,H178给出#REF! 这应该自动意味着macros运行,但它不,除非我双击单元格H178,然后回车。
但是,如果我即直接改变单元格H170 sheet1,= 5/0(这给出了错误)然后macros运行。
我究竟做错了什么?
您应该将此代码放在Worksheet_Calculate事件中,以便在错误通过时重新计算