直接调用excel也应该能满足你的要求吧。 代码: Dim exl As Object Dim mybook As Object Dim mysheet As Object Set exl = CreateObject("excel.application") Set mybook = exl.workbooks.Add Set mysheet = exl.worksheets.Add 然后选择表名称 在excel环境下添加
Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" _ (ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Private Declare Function MoveWindow Lib "user32" _ (ByVal hwnd As Long, _ ByVal x As Long, _ ByVal Y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal bRepaint As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal x As Long, ByVal Y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long
Private Declare Function FindWindowEx Lib "user32" _ Alias "FindWindowExA" _ (ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Private mlngXLHwnd As Long Private WithEvents mobjXL As Excel.Applicationsub add_a_excelmobjXL.Caption = "10001" mlngXLHwnd = FindWindow("XLMAIN", "10001")SetParent mlngXLHwnd, Me.PicSstab(3).hwnd '你需要把excel放在地方的句柄Dim c As ObjectFor Each c In mobjXL.CommandBars 'c.Visible = True c.Enabled = True NextExcel_window mlngXLHwnd mobjXL.Workbooks.Add mobjXL.Sheets("sheet1").name = "Temp" mobjXL.Sheets("sheet2").Delete mobjXL.Sheets("sheet3").Deleteend sub
Sub Excel_window(mlngXLHwnd As Long)
Dim lngStyle As Long Dim lngStatusBar As Long lngStyle = GetWindowLong(mlngXLHwnd, GWL_STYLE)
如果不用OLE,用以下代码也可以: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long '引用Microsof Excel X.0 Object Library Private Sub Cmdopen_Click() Dim exlHwnd As Long Dim exl As Object Dim mybook As Object Set exl = CreateObject("excel.application") Set mybook = exl.workbooks.Open(App.Path & "\属性录入.xls") exl.Visible = True exlHwnd = FindWindow(vbNullString, "Microsoft Excel - 属性录入.xls") Call SetParent(exlHwnd, Me.hwnd) Set exl = Nothing Set mybook = Nothing End Sub
HScroll1.Value = 0
VScroll1.Value = 0
With OLE1
.CreateLink (App.Path & "\属性录入.xls")
HScroll1.Max = .Width - Picture1.Width + 20
HScroll1.LargeChange = .Width / 10
HScroll1.SmallChange = .Width / 20
VScroll1.Max = .Height - Picture1.Height + 20
VScroll1.LargeChange = .Height / 10
VScroll1.SmallChange = .Height / 20
End WithEnd Sub
来给帮助就给分
代码:
Dim exl As Object
Dim mybook As Object
Dim mysheet As Object
Set exl = CreateObject("excel.application")
Set mybook = exl.workbooks.Add
Set mysheet = exl.worksheets.Add
然后选择表名称
在excel环境下添加
Alias "SetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function MoveWindow Lib "user32" _
(ByVal hwnd As Long, _
ByVal x As Long, _
ByVal Y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal bRepaint As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" _
(ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private mlngXLHwnd As Long
Private WithEvents mobjXL As Excel.Applicationsub add_a_excelmobjXL.Caption = "10001"
mlngXLHwnd = FindWindow("XLMAIN", "10001")SetParent mlngXLHwnd, Me.PicSstab(3).hwnd '你需要把excel放在地方的句柄Dim c As ObjectFor Each c In mobjXL.CommandBars
'c.Visible = True
c.Enabled = True
NextExcel_window mlngXLHwnd
mobjXL.Workbooks.Add
mobjXL.Sheets("sheet1").name = "Temp"
mobjXL.Sheets("sheet2").Delete
mobjXL.Sheets("sheet3").Deleteend sub
Dim lngStyle As Long
Dim lngStatusBar As Long
lngStyle = GetWindowLong(mlngXLHwnd, GWL_STYLE)
lngStyle = lngStyle Xor WS_CAPTION
lngStyle = lngStyle Xor WS_SIZEBOX
SetWindowLong mlngXLHwnd, GWL_STYLE, lngStyle
MoveWindow mlngXLHwnd, 0, 0, (PicSstab(3).Width / Screen.TwipsPerPixelX) + 3, (PicSstab(3).Height / Screen.TwipsPerPixelY) + 3, 1End Sub
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
'引用Microsof Excel X.0 Object Library
Private Sub Cmdopen_Click()
Dim exlHwnd As Long
Dim exl As Object
Dim mybook As Object
Set exl = CreateObject("excel.application")
Set mybook = exl.workbooks.Open(App.Path & "\属性录入.xls")
exl.Visible = True
exlHwnd = FindWindow(vbNullString, "Microsoft Excel - 属性录入.xls")
Call SetParent(exlHwnd, Me.hwnd)
Set exl = Nothing
Set mybook = Nothing
End Sub