Re: [问题] EXCEL VBA阵列索引超出范围(错误代码9)

楼主: candysherry (阿哈)   2020-08-13 12:55:53
※ 引述《candysherry (阿哈)》之铭言:
: s大
: 小弟还是不太明白S大的意思
: 可以再解说详细一点吗?
: 谢谢
非常感谢S大 可以了ㄟ
解决我多年困扰的问题
不过 还有一个问题想要请教S大
Private Sub Worksheet_Calculate()
If ActiveWorkbook.Name = ThisWorkbook.Name Then
With Sheets("计算结果")
If Not IsError(Range("D9")) Then
If Not IsError(Range("B9")) Then
If Not IsError(Range("B10")) Then
If Not IsError(Range("A32")) Then
If Not IsError(Range("B32")) Then
If Not IsError(Range("G18")) Then
If Not IsError(Range("G20")) Then
If Not IsError(Range("G19")) Then
If Not IsError(Range("G21")) Then
If Not IsError(Range("G16")) Then
If Not IsError(Range("G17")) Then
If Not IsError(Range("G14")) Then
If Not IsError(Range("G15")) Then
If Not IsError(Range("G23")) Then
If Not IsError(Range("G24")) Then
If Not IsError(Range("h42")) Then
If Not IsError(Range("H43")) Then
If Not IsError(Range("H44")) Then
If Not IsError(Range("G46")) Then
End If
End If
If [D9] >= [B9] Or [D9] <= [B10] Then 播放wav
If [A19] >= [A9] Or [A19] <= [A10] Then 播放wav
If [D6] >= [A52] Or [D6] <= [A53] Then 播放Contact
If [D3] >= [b52] Or [D3] <= [b53] Then 播放Contact
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End With
End If
End Sub
以上是语法 现在虽然解决可以同时开两个EXCEL
但却只能有一个能用声音提醒
如果要开两个EXCEL 且两个EXCEL 都能提醒
不知道语法要怎么写
再次感谢S大的协助
作者: soyoso (我是耀宗)   2020-08-13 13:40:00
会出"阵列索引超出范围(错误代码9)"就表示,触发事件时作用活页簿(第二个活页簿)内是没有该工作表名称("计算结果")的工作表的,所以如果第二个活页簿的档名是固定的话,就判断activeworkbook.name,那再以有存在于活页簿的工件表名称,用于sheets(..)括号内那之前写到只判断activeworkbook.name = thisworkbook.name方面就不正确,因为有二个活页簿的名称是都要执行的话,固定活页簿名称就再加个or。当然如果开启上就只有这二个档案的话,就判断触发事件时activeworkbook.name是哪个就好,带入有存在的工作表名称,以解决最先"阵列索引超出范围(错误代码9)"的这个问题

Links booklink

Contact Us: admin [ a t ] ucptt.com