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