PDA

نسخه کامل مشاهده نسخه کامل : vb 2008 کی بلده!!؟



afe
23-09-2008, 20:46
سلام
وقتی این کد رو تو ویژوهل بیسیک 2008 اجرا می کنم :


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

'Start a new workbook in Excel
oExcel = CreateObject("Excel.Application")
oBook = oExcel.workbooks.add

'Add data to cells of the first worksheet in the new workbook
oSheet = oBook.Worksheets(1)
oSheet.Range("A1").Value = "Last Name"
oSheet.Range("B1").Value = "First Name"
oSheet.Range("A1:B1").Font.Bold = True
oSheet.Range("A2").Value = "Doe"
oSheet.Range("B2").Value = "John"

'Save the Workbook and Quit Excel
oBook.SaveAs("C:\Book1.xls")
oExcel.Quit()
این ارور رو می گیرم:
Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
برای oBook = oExcel.workbooks.add
مشکل کار کجاست؟
همین کد به راحتی تو وی بی 6 اجرا میشه (با تغییراتی در syntax )

_H2_
25-09-2008, 02:32
سلام
کلاً این خطا ربطی به ورژه VB ندارد و مربوط به زیرساختهای COM در Office است.
در اصل کد شما در نسخه جدید تر از Excel 2002 Standard Edition و با زبانهای جدید به مشکل برخواهید خورد
حتی همچین کدی در VC++6.1 هم به همین خطا خواهید رسید.

اما راه حل....

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ضمناً بهتر است به جای CreateObject از reference های جدید مثل Microsoft.Office.Interop.Excel استفاده کنید
با این شیوه قانونمند، بعد از زدن نقطه طبق معمول، لیست متدها و خواص و پارامترها و... هم قابل مشاهده است و نیازی به نوشتن کد با چشمان بسته نیست!

موفق باشید.