在vb中需要建立打開excel物件,用以下類似陳述句
Dim ExcelApp As New Excel.Application
Dim ExcelWorkBook As Excel.Workbook
Dim ExcelWorksheet As Excel.Worksheet
Set ExcelWorkBook = ExcelApp.Workbooks.Open("d:\sample.xls") '打開作業簿
Dim ExcelApp As New Excel.Application
Dim ExcelWorkBook As Excel.Workbook
Dim ExcelWorksheet As Excel.Worksheet
If ExcelApp.Workbooks.Count > 0 Then
Set ExcelWorkBook = ExcelApp.ActiveWorkbook '如果當前有作業本,就對當前作業本進行操作
Else
Set ExcelWorkBook = ExcelApp.Workbooks.Open("d:\sample.xls") '如果當前無作業本,就打開作業本
End If
Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
Set XlApp = Application
End Sub
Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
Set XlApp = Nothing
End Sub
Private Sub XlApp_WorkbookOpen(ByVal Wb As Excel.Workbook)
If LCase(Wb.FullName) = "d:\sample.xls" Then
Set My_Wb = Wb
frmAddIn.Show 0
End If
End Sub
表單添加一個按鈕,命名: Command1 .
表單代碼:
Private Sub Command1_Click()
MsgBox My_Wb.sheets("sheet1").cells(1, 1).Value
End Sub
模塊代碼:
Public My_Wb As Excel.Workbook
如下圖示:
uj5u.com熱心網友回復:
你好,不好意思現在才來看當時這篇帖子,中間很長時間在忙其他東西。
很感謝你的詳盡回復,我按照你說的測驗,在生成MyAddIn.dll程序中,在模塊的Public My_Wb As Excel.Workbook這句上報錯:“編譯錯誤:用戶定義型別未定義”
哦我刪掉后重新設定一下,果然這個地方就沒編譯錯誤了
現在是在設計器的“Dim mcbMenuCommandBar As Office.CommandBarControl”
這句話報錯說“用戶定義型別未定義”,不知道什么原因。
uj5u.com熱心網友回復:
Class1 的代碼:
Private objWorkBook As Excel.WorkBook
Sub Form_open() '
w_main.Show 0
End Sub
Public Property Get WorkBook() As Excel.WorkBook
Set WorkBook = objWorkBook
End Property
Public Property Let WorkBook(ByVal vNewValue As Excel.WorkBook)
Set objWorkBook = vNewValue
Set w_main.ExcelWorkBook = vNewValue '在這兒把物件參考傳遞到表單中去
End Property
Private Sub Class_Initialize()
Set objWorkBook = Nothing
End Sub
w_main 的代碼:
' 增加這個
Public ExcelWorkBook As Excel.WorkBook
Sub Command1_Click()
Dim ExcelApp As New Excel.Application
Dim ExcelWorkBook As Excel.WorkBook
Dim ExcelWorksheet As Excel.Worksheet
Set ExcelWorkBook = ExcelApp.Workbooks.Open("C:\Documents and Settings\shi23410\Desktop\test\sample.xls") '打開作業簿
Set ExcelWorkBook = ExcelApp.ThisWorkbook