Я пытаюсь использовать эти коды для добавления некоторых значений в ячейку, не открывая таблицу Excel и не закрывая ее.

f1::
Xl := ComObjCreate("Excel.Application")
Xl.Workbooks.Open("c:\Users\Manoj Aggarwal\Desktop\DATA.xlsx") 
Xl.Visible := False
Xl.Range("b1").Value:= "jaisiaramji"
Workbooks.Save()
Workbooks.Quit()
Workbooks:="" 
Return

Они работают, но когда я вручную открываю эту таблицу Excel, появляется сообщение о том, что файл DATA.xlsx уже открыт.Повторное открытие приведет к тому, что любые сделанные вами изменения будут отменены. Хотите снова открыть DATA.xlsx. Пожалуйста, помогите мне и предложите мне, какие изменения я должен внести в коды. Благодарю.

2 ответа2

0

Не уверен, как перейти от вашего кода к чему-то, что работает, но вам нужно иметь ссылку на рабочую книгу, а затем использовать рабочую книгу .Метод Close с первым параметром, установленным в true, чтобы сохранить файл при его закрытии.

Посмотрите средний блок кода в посте здесь, чтобы получить ссылку на активный лист и рабочую книгу, это не то, что вы делаете, но это может дать вам некоторые вещи, которые можно попробовать и протестировать. Мне было бы интересно увидеть рабочее решение, если вы приедете к нему.

При работе с объектами Excel интересно, что вы можете иметь ссылки на три различных объекта (приложение, рабочую книгу и рабочий лист), которые имеют свои собственные соответствующие методы для работы с ними. Сначала немного непрозрачно, если вы не прочитали документацию MSDN.

0

Я попробовал следующие 2 строки, и это сработало для меня:

х.ActiveWorkbook.save(); сохранение файла

Xl.ActiveWorkbook.close(); закрытие файла

Так что больше нет сообщения об ошибке "DATA.xlsx уже открыт. Повторное открытие приведет к тому, что любые сделанные вами изменения будут отменены. Хотите открыть DATA.xlsx? "

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .