この同じタイトルで多くの質問を読んだ後も、コード実行時にタイトルのエラーが発生しないように苦労しています。"オートメーションエラー:呼び出されたオブジェクトがクライアントから切断されました。別のサブキーから呼び出すとき
コードはここに始まる:目的:「オートメーションエラーと、上記最終行に失敗する前
Sub Toggle_ErrorPrevention(ByVal intShapeNumberVal As Integer)
Dim lngHLSegmentNumberingRow As Long
Dim lngClaimRemovalHaveWantedClaimsRow As Long
Dim lngClaimRemovalHaveUnwantedClaimsRow As Long
With ThisWorkbook.Sheets("Correction Type Options").Columns(1)
lngHLSegmentNumberingRow = .Find(What:="HL Segment Numbering", Lookat:=xlWhole).Row
lngHLSegmentNumberingRow = .Find(What:="HL Segment Numbering", Lookat:=xlWhole).Row
を:
Option Explicit
Sub Toggle_Click()
Dim lngMoveBy As Long
Dim Loop1 As Long
Dim intShapeNumber As Integer
intShapeNumber = Right(Application.Caller, Len(Application.Caller) - Len("Toggle"))
If ThisWorkbook.Sheets("Correction Type Options").Shapes("ToggleBackground" & intShapeNumber).Fill.ForeColor.RGB = RGB(255, 255, 255) Then Toggle_ErrorPrevention intShapeNumber
は、同じモジュール内のこのサブへ移動呼び出されたクライアントから切断されました。
エラーが発生した後に文書を保存して閉じてから再起動すると、「修正タイプオプション」シートの列1が強調表示されます。
これは私が初めて他のサブシステムからサブシステムに電話をかけているので、問題の潜在的な原因としてコール自体に特別な注意を払ってきました。私はまだそれが正しいと確信していません。
Option Explicit
Sub Toggle_Click()
Dim lngMoveBy As Long
Dim Loop1 As Long
Dim intShapeNumber As Integer
intShapeNumber = Right(Application.Caller, Len(Application.Caller) - Len("Toggle"))
If ThisWorkbook.Sheets("Correction Type Options").Shapes("ToggleBackground" & intShapeNumber).Fill.ForeColor.RGB = RGB(255, 255, 255) Then Toggle_ErrorPrevention intShapeNumber
If ThisWorkbook.Sheets("Correction Type Options").Shapes("ToggleBackground" & intShapeNumber).Fill.ForeColor.RGB = RGB(255, 255, 255) Then
lngMoveBy = 0.6
Else
lngMoveBy = -0.6
End If
With ThisWorkbook.Sheets("Correction Type Options").Shapes("Toggle" & intShapeNumber)
For Loop1 = 1 To 24
.IncrementLeft lngMoveBy
DoEvents
Next Loop1
End With
If ThisWorkbook.Sheets("Correction Type Options").Shapes("ToggleBackground" & intShapeNumber).Fill.ForeColor.RGB = RGB(255, 255, 255) Then
With ThisWorkbook.Sheets("Correction Type Options").Shapes("ToggleBackground" & intShapeNumber)
.Fill.ForeColor.RGB = RGB(0, 255, 0)
.TextFrame.Characters.Text = "On"
.TextFrame.Characters.Font.Bold = True
.TextFrame.Characters.Font.ColorIndex = 1
.TextFrame.HorizontalAlignment = xlLeft
.TextFrame.VerticalAlignment = xlCenter
End With
Else
With ThisWorkbook.Sheets("Correction Type Options").Shapes("ToggleBackground" & intShapeNumber)
.Fill.ForeColor.RGB = RGB(255, 255, 255)
.TextFrame.Characters.Text = "Off"
.TextFrame.Characters.Font.Bold = True
.TextFrame.Characters.Font.ColorIndex = 1
.TextFrame.HorizontalAlignment = xlRight
.TextFrame.VerticalAlignment = xlCenter
End With
End If
End Sub
Sub Toggle_ErrorPrevention(ByVal intShapeNumberVal As Integer)
Dim lngHLSegmentNumberingRow As Long
Dim lngClaimRemovalHaveWantedClaimsRow As Long
Dim lngClaimRemovalHaveUnwantedClaimsRow As Long
With ThisWorkbook.Sheets("Correction Type Options").Columns(1)
lngHLSegmentNumberingRow = .Find(What:="HL Segment Numbering", Lookat:=xlWhole).Row
lngClaimRemovalHaveWantedClaimsRow = .Find(What:="Claim Removal - Have Wanted Claims", Lookat:=xlWhole).Row
lngClaimRemovalHaveUnwantedClaimsRow = .Find(What:="Claim Removal - Have Unwanted Claims", Lookat:=xlWhole).Row
End With
With ThisWorkbook.Sheets("Correction Type Options")
If intShapeNumberVal + 1 = lngHLSegmentNumberingRow Then
If .Shapes("ToggleBackground" & lngClaimRemovalHaveWantedClaimsRow - 1).Fill.ForeColor.RGB = RGB(0, 255, 0) Then Application.Run .Shapes("Toggle" & lngClaimRemovalHaveWantedClaimsRow - 1).OnAction
If .Shapes("ToggleBackground" & lngClaimRemovalHaveUnwantedClaimsRow - 1).Fill.ForeColor.RGB = RGB(0, 255, 0) Then Application.Run .Shapes("Toggle" & lngClaimRemovalHaveUnwantedClaimsRow - 1).OnAction
End If
If intShapeNumberVal + 1 = lngClaimRemovalHaveWantedClaimsRow Then
If .Shapes("ToggleBackground" & lngHLSegmentNumberingRow - 1).Fill.ForeColor.RGB = RGB(0, 255, 0) Then Application.Run .Shapes("Toggle" & lngHLSegmentNumberingRow - 1).OnAction
End If
If intShapeNumberVal + 1 = lngClaimRemovalHaveUnwantedClaimsRow Then
If .Shapes("ToggleBackground" & lngHLSegmentNumberingRow - 1).Fill.ForeColor.RGB = RGB(0, 255, 0) Then Application.Run .Shapes("Toggle" & lngHLSegmentNumberingRow - 1).OnAction
End If
End With
End Sub
このエラーはExcelのバージョン間の互換性(非常に簡単な検索から)と関連があるようです。このサイトを検索用語として間違えて検索すると、さまざまな原因と解決策が表示されます – CallumDA
何を試してみましたか?私はあなたに警告しますが、コードとはあまり関係がないようであれば、私たちが手助けするのは難しいかもしれません。 – CallumDA
使用しているExcelのバージョンはどれですか?また、コードの残りの部分を投稿することをお勧めします。 – CallumDA