后记:经过一天的不懈努力,终于调好了,也算是功德圆满。
Option Base 1 '就是因为少了这么一句,数组第一行对应的是(0,i),第一列对应的是(i,0),于是保存到excel后,第一行第一列全是空值
Dim recordnumber As Integer '因为在该窗体的两个过程中都用到了recordnumber,而且是同一变量,所以,有必要在窗体层声明该变量,否则,无法实现保存到dat功能(该过程中recordnumber还是0呢)
Dim DataArray() As Variant '因为各个数据的长度并不统一,所以暂时全部定为变体类型
Private Sub MENU_OPEN_Click() ‘有种预感,似乎这个打开Excel文件是在上面的绘制曲线的窗体下进行的?
Dim I As Integer
Dim FileName As String
Dim DataArray() As single ‘这一行是我自己加上去的,定义一个动态数组
Excel_CommonDialog.FileName = "" ‘这里建立了一个打开文件的对话框。之后就要涉及到建立Excel表格并链接,需要补充一些知识
Excel_CommonDialog.Filter = "数据文件|*.dat" ‘课本第325页最下面的标注,表明显示的文件类型,显示数据类型的文件
Excel_CommonDialog.ShowOpen ‘TB 第322页,需要新建一个打开文件的对话框
FileName = Excel_CommonDialog.FileName
If FileName = "" Then
MsgBox "不能打开数据文件"
Exit Sub
End If
Open FileName For Binary As #1
RecordNumber = LOF(1) / 16 ‘这里做了修改,见程序“D:\课题相关\Excel\excel部分调试”
For I = 1 To RecordNumber ‘这里做了修改,见程序“D:\课题相关\Excel\excel部分调试”
Get #1, , DataArray(I, 1) ‘到这里竟然提示没有定义这个变量,难道需要补充定义?读操作。
Get #1, , DataArray(I, 2) ‘I 在前面定义了,是个整数。
Get #1, , DataArray(I, 3)
Get #1, , DataArray(I, 4)
Next I
End Sub
Private Sub MENU_OPEN_Excel_Click() ‘涉及excel的部分暂时留下,估计是在绘制曲线窗口设计的。
Dim I As Integer
Dim FileName As String
Dim x1App As Excel.Application
Dim x1Book As Excel.Workbook
Dim x1Sheet As Excel.Worksheet
Excel_CommonDialog.Filter = "Excel文件|*.xls"
Excel_CommonDialog.FileName = ""
Excel_CommonDialog.ShowOpen ‘第一,添加CommonDialog控件;第二,在属性窗口设置其默认打开路径,即InitDir属性;第三,记得修改一下name属性为此处的Excel_CommonDialog
FileName = Excel_CommonDialog.FileName
If FileName = "" Then ‘意思是如果没有选择打开的文件名,则退出该过程
Exit Sub
End If
Set x1App = CreateObject("Excel.Application") '创建excel应用程序,打开excel
x1App.Visible = True '如果没有这条命令,就无法看见打开的excel文件,而且这一行必须放在上面那行之后。只有先用set打开了excel程序,才能继而设置其可见性。
Set x1Book = x1App.Workbooks.Open(FileName) '创建工作簿(工作薄在excel下建立)
Set x1Sheet = x1Book.Worksheets(1) '打开Excel工作表或叫创建工作表(工作表又在工作薄workbooks下建立,一层一层的)
x1Sheet.Activate '激活工作表 这一行作用是干吗的,还没发现,有没有感觉没什么用
RecordNumber = x1Sheet.Cells(2, 9) ‘专门留了一个单元格用来填写记录数据。
For I = 1 To RecordNumber
DataArray(I, 1) = x1Sheet.Cells(I + 1, 1)
DataArray(I, 2) = x1Sheet.Cells(I + 1, 2)
DataArray(I, 3) = x1Sheet.Cells(I + 1, 3)
DataArray(I, 4) = x1Sheet.Cells(I + 1, 4)
Next I
'xlBook.RunAutoMacros (x1AutoClose) ‘‘运行Excel关闭宏
x1App.Quit '关闭Excel
Set x1App = Nothing
End Sub
Private Sub MENU_SAVE_Click()
Dim I As Integer
Dim FileName As String
Excel_CommonDialog.Filter = "数据文件|*.dat"
Excel_CommonDialog.FileName = "data1.dat"
Excel_CommonDialog.ShowSave
FileName = Excel_CommonDialog.FileName ‘属性名
Open FileName For Binary As #1
For I = 1 To RecordNumber '因为在多个过程中都用到了recordnumber,而且是同一变量,所以,有必要在窗体层(或者标准模块层)声明该变量,否则,无法实现保存到dat功能(该过程中recordnumber还是0呢,并未继承前一过程的recordnumber值)
Put #1, , DataArray(I, 1) ‘写操作。后面有程序为这些数组赋值的。
Put #1, , DataArray(I, 2)
Put #1, , DataArray(I, 3)
Put #1, , DataArray(I, 4)
Next I
Close #1
End Sub
Private Sub MENU_SAVE_Excel_Click()
'在通用对象的声明过程中定义Excel对象
Dim I As Integer
Dim ex As Object '定义Excel类
Dim exWbook As Object '定义工作簿类
Dim exSheet As Object '定义工作表类 ‘这三个定义应该是定义在标准模块中,见论文39页
Dim FileName As String
Excel_CommonDialog.Filter = "Excel表|*.xls"
Excel_CommonDialog.FileName = ""
Excel_CommonDialog.ShowSave
FileName = Excel_CommonDialog.FileName
If FileName = "" Then
Exit Sub
End If
On Error Resume Next
Set ex = CreateObject(App.Path, "Excel.Application") '创建Excel对象
If Err Then
Err.Clear
Set ex = CreateObject("Excel.Application") '创建Excel对象
If Err Then
Exit Sub
End If
End If
ex.Visible = True '设置Application对象使Excel可见
Set exWbook = ex.Workbooks().Add '创建一个新的WorkBook
Set exSheet = exWbook.Worksheets("sheet1") '设置活动工作表,三个set是依次递进的关系
exSheet.Activate '激活工作表
ex.Range("A1:D1").Value = Array("流量计", "出口压力", "进口压力", "功率参数") ‘range表示单元格。这里共有四项统计数据,这和前面的
'ex.Cells(1, 1).Value = "This is column A, row 1" ‘这个单元格的赋值其实是可有可无的。
exSheet.Cells(1, 9) = "数据总数"
exSheet.Cells(2, 9) = RecordNumber
exSheet.Range("A2").Resize(1000, 4).Value = DataArray '‘这里做了修改,见程序“D:\课题相关\Excel\excel部分调试”将数据传输到WorkSheet。将前面保存的数据文件保存到这样的excel文件里 带着一连串的操作,就可以保存。关键就是这行怎么理解,不太明白,所以出现问题也不知道怎么调整(其余功能基本上都可以实现了)
exSheet.SaveAs FileName
'exWbook.SaveAs "E:\课题\试验记录"
End Sub ‘涉及excel的部分暂时留下,估计是在绘制曲线窗口设计的。


档案
日志
相册
视频



评论
想第一时间抢沙发么?