2010-06-02 1 views
1

Это код, который мне нужно экспортировать в Excel.Экспорт с VB в Excel и файл обновления

Dim oExcel As Object 
Dim oBook As Object 
Dim oSheet As Object 

oExcel = CreateObject("Excel.Application") 
oBook = oExcel.Workbooks.Add 

oSheet = oBook.Worksheets(1) 
oSheet.Range("A1").Value = "ID" 
oSheet.Range("B1").Value = " Nome" 
oSheet.Range("A1:B1").Font.Bold = True 
oSheet.Range("A2").Value = CStr(Request("ID")) 
oSheet.Range("B2").Value = "John" 

    oBook.SaveAs("C:\Book1.xlsx") 
    oExcel.Quit() 

Я могу создать и сохранить файл excel, но я не могу обновить содержимое. Как я могу это сделать?

Спасибо.

ответ

0

Вы пытаетесь установить Range до значения, я думаю, что либо вам нужно установить Range в массив, который может содержать значение (ы) или вам необходимо установить один Cell к одному значению.

Эта ссылка показывает, как сделать что-либо:

http://support.microsoft.com/kb/301982

+0

Но как добавить больше строк в файл excel, не спрашивая, хочу ли я перезаписать его содержимое? Для каждого раза я просто хочу добавить одну строку в файл. Не нужно ли использовать что-то вроде «If (File.exists) bla bla»? –

+0

@Filipe Costa: Возможно, я неправильно понял ваш вопрос. Если вы просто хотите сохранить файл без получения приглашений, перед выполнением сохранения сделайте 'oExcel.DisplayAlerts = False', а затем смените его на' True' после сохранения. –

0

Я думаю, что вы хотите:

oBook = oExcel.Workbooks.Open ("C:\Book1.xlsx") 

Когда вы выбираете Add, вы создаете новую книгу.

Если вы уверены, нет никаких пробелов, что-то вроде этого могут подойти:

''Last cell in column A, or first gap 
oSheet.Range("a1").End(xlDown).Select 
''A+1 row 
oSheet.ActiveCell.Offset(1) = "a" 
''A + 1 row + 1 col 
oSheet.ActiveCell.Offset(1, 1) = "b" 
''A + 1 row + 2 col 
oSheet.ActiveCell.Offset(1, 2) = "c" 

В противном случае, вам может понадобиться http://support.microsoft.com/kb/142526 определить последнюю ячейку.

+0

Просто открытие книги не означает, что я могу добавить к ней новую строку, верно? Как добавить новую строку в книгу, а не переписывать то, что у меня уже есть? Это похоже на то, что один пользователь отправляет форму с некоторыми данными, данные передаются в одну строку книги. Другой пользователь отправляет форму, добавляется другая строка и т. Д. –

+0

Я добавил примечание – Fionnuala