2015-05-22 4 views
0

У меня есть форма, которая экспортирует и редактирует файлы excel для пользователей. У меня проблема при попытке удалить мой код из существующего листка из моего кода VBA Access 2010.Удалить рабочий лист из Access 2010 VBA

Мой код:

Private Sub Command0_Click() 

Dim xl As Excel.Application 
Dim wb As Excel.Workbook 
Dim sht As Excel.Worksheet 

Set xl = CreateObject("Excel.Application") 
Set wb = xl.Workbooks.Open("C:\Users\Me\Desktop\Document.xlsx") 

For Each sht In wb.Worksheets 
    If sht.Name = "DeleteSheet" Then 
    wb.Worksheets("DeleteSheet").Delete 
    End If 
Next sht 

wb.Save 
wb.Close 
xl.Quit 

End Sub 

Когда я запускаю код, нет никакой ошибки. Однако лист не удаляется. Я знаю, что sht.Name читает имя листа «DeleteSheet», позволяя запустить оператор if. Таким образом, я считаю, что это сводится к методу сохранения или к этой строке: wb.Worksheets("DeleteSheet").Delete. ТИА!

ответ

0

Вы можете удалить рабочий лист непосредственно, т.е.

Вместо

wb.Worksheets ("DeleteSheet"). Удалить

Использование

sht.Delete

+0

'Ошибка выполнения«438»: Объект не поддерживает это свойство или method' –

+0

Ваша правка не вызывает ошибку, но лист до сих пор не удаляются:/спасибо за попытку ! –

0

Может вам попробуй что-нибудь подобное, Райан?

Dim xl As Object 
Dim wb As Excel.Workbook 
Dim sht As Excel.Worksheet 

Set xl = CreateObject("Excel.Application") 
Set wb = xl.Workbooks.Open("C:\Users\Me\Desktop\Document.xlsx") 

For Each sht In wb.Worksheets 
    If sht.Name = "DeleteSheet" Then 
    wb.Worksheets("DeleteSheet").Select 
    xl.ActiveSheet.Delete 
    End If 
Next sht 

wb.Save 
wb.Close 
xl.Quit 
+0

На этот раз я получаю диалоговое окно, которое спрашивает меня, хочу ли я перезаписать текущий файл excel в этом месте. Я нажал кнопку «Да», однако рабочий лист все еще находится в документе. –

+0

Он правильно читает имена листов, я просто не вижу, чтобы он удалял что-либо. Это довольно расстраивает ха-ха. Спасибо за помощь! –

+0

Возможно, вы захотите проверить, что в диспетчере задач нет сиротского сеанса Excel, который все равно может блокировать файл. Я только что проверил код выше, и он работает. Я знаю, что это может расстраивать! :-). Я немного изменил код, так как вы, возможно, сначала скопировали его. – DanielG

Смежные вопросы