'Const APPNAME = "VSFlexGrid8 用GetOpenFilename打开Excel工作表,直接存入VSFlexGrid 控件 "
Option Explicit
Dim sheet%
Dim sFileName As String '从FileName中提取的文件名
Private Sub UserForm_Initialize()
fg.AllowUserResizing = flexResizeBoth
fg.MergeCells = flexMergeSpill
fg.ExtendLastCol = True
End Sub
Private Sub btnLoad_Click()
Dim FileName As Variant, i%
'打开文件对话框返回的文件名,是一个全路径文件名,其值也可能是False,因此类型为Variant
' Dim sFileName As String ' 从FileName中提取的文件名
Dim sPathName As String ' 从FileName中提取的路径名
Dim aFile As Variant ' 数组,提取文件名sFileName时使用
Dim sht As Worksheet ' 存储文件路径名和文件名的工作表
Set sht = ThisWorkbook.Worksheets("Sheet1") '把sht指向当前工作簿的sheet1工作表
FileName = Application.GetOpenFilename("Excel 文件 (*.xls),*.xls")
'调用Windows打开文件对话框
If FileName <> False Then '如果未按“取消”键
aFile = Split(FileName, "\") '在全路径中,以“\”为分隔符,分成数据
sPathName = aFile(0) '取盘符
For i = 1 To UBound(aFile) - 1 '循环合成路径名
sPathName = sPathName & "\" & aFile(i)
Next
sFileName = aFile(UBound(aFile)) '数组的最后一个元素为文件名
sht.Cells(1, 2).Value = sPathName '保存路径名
sht.Cells(2, 2).Value = sFileName '保存文件名
End If
'LoadGrid() 载入网格 O.A FileName, 0 至 6[,True(含固定行列)|False]
fg.LoadGrid sFileName, 6
sheet = 0
btnNextSheet.Enabled = True
End Sub
Private Sub btnNextSheet_Click()
sheet = sheet + 1
On Error Resume Next
'fg.LoadGrid dlg.FileName, flexFileExcel, sheet
fg.LoadGrid sFileName, 6, sheet
If Err <> 0 Then
MsgBox "No More Sheets"
sheet = 0
btnNextSheet.Enabled = False
End If
On Error GoTo 0
End Sub