我的情況是我從MS Word
打開Workbook
在那裏我找到了一些文字,並刪除找到的文本的整個行。爲了實現這一點,我使用了具有複選框和按鈕的Userform。通過所有的複選框和下面循環中的代碼,如果C.Value
回報True
它按CEEMEA按鈕進行操作。打開工作簿從MS-Word對象,並查找使用文本複選框,刪除整個行,然後關閉工作簿
我有Excel Object
命名Xc
問題。
我第一次運行CEEMEA宏它正常運行(打開工作簿 - >查找文本 - >刪除行 - >關閉工作簿等);
,但第二次,它返回錯誤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(「SheetName」)。找到...' – AntiDrondert