在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") '打开工作簿
特此求助大虾!多谢!!
dll
vba
excel
--------------------编程问答--------------------
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
--------------------编程问答--------------------
你那样打开,不是会造成一种“死循环”么?
(幸好Excel会询问是否重新打开,要不然真成死循环了。)
你可以试下这样:
'Set ExcelWorkBook = ExcelApp.Workbooks.Open("d:\sample.xls") '打开工作簿
Set ExcelWorkBook = ExcelApp.ThisWorkbook
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
如下图示:
--------------------编程问答--------------------
你好,不好意思现在才来看当时这篇帖子,中间很长时间在忙其他东西。
很感谢你的详尽回复,我按照你说的测试,在生成MyAddIn.dll过程中,在模块的Public My_Wb As Excel.Workbook这句上报错:“编译错误:用户定义类型未定义”
哦我删掉后重新设定一下,果然这个地方就没编译错误了
现在是在设计器的“Dim mcbMenuCommandBar As Office.CommandBarControl”
这句话报错说“用户定义类型未定义”,不知道什么原因。
--------------------编程问答--------------------
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