私の状況は、MS Word
からWorkbook
からオープンしています。これを達成するために、私はUserformチェックボックスとボタンを使用しています。以下のコードはすべてのチェックボックスをループし、C.Value
がTrue
を返す場合は、CEEMEAボタンを押してアクションを実行します。Ms-Wordからオブジェクトとしてワークブックを開き、チェックボックスを使用してテキストを検索する、行全体を削除してからワークブックを閉じる
Excel Object
という名前のXc
に問題があります。
最初に私はを実行します。CEEMEAマクロが正しく実行されます(ブックを開く - >テキストの検索 - >行の削除 - >クローズブックなど)。
ですが、2回目にエラーRun-time Error '13': Type mismatch
が返されます。これまでのところ、最初に実行したときに何かが残っていると思います。終了しない/閉じる/何も設定していない(ブックの複製)
すべてのスペルをチェックしました。
私はXc.Quit
の最後にあり、Set Xc= Nothing
です。
どこが間違っているのか分かりませんでした。私が最初に実行したことは、私がQuit
またはSet
からNothing
にしなかったものかもしれません。私は下に全体のコードを置く。親切に助けてください...
この仕事を親切にしてやる方がいれば、親切にお勧めします。
Dim Xc As Object
Set Xc = CreateObject("Excel.Application")
Xc.Visible = True
Set Wb = Xc.Workbooks.Open("C:\Users\dell\Desktop\EMEA CEEMEA\EMEA CC FINAL LIST.xls")
Dim C As MSForms.Control
For Each C In Me.Controls
If TypeName(C) = "CheckBox" Then
If C.Value = True Then
If C.Caption = "Select All" Then
Else
Dim ff As String
ff = Trim(C.Caption)
With Wb
.Application.Sheets("Sheet2").Select
.Application.Range("A1").Select
.Application.Cells.Find(What:=ff, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
.Application.ActiveCell.Rows("1:1").EntireRow.Select
.Application.Selection.Delete Shift:=xlUp
.Application.Range("A1").Select
End With
End If
End If
End If
Next C
Wb.Close SaveChanges:=True
Workbooks.Close
Set Wb = Nothing
Xc.Quit
Set Xc = Nothing
あなたはWorksheetを指定しませんでした。 '.Worksheet(" SheetName ")を試してください。Find ...' – AntiDrondert