工作表的操作有一个很重要的项目,就是保存和替换数据。 就是说,当我们制作完成一个表的时候,想要另存为一个新表,或者将已经存在的工作表导入当前工作表中。 ![](http://image109.360doc.com/DownloadImg/2022/02/1515/239476886_1_20220215030423851_wm.jpeg)
本节将提供一种思路,来对表的导入导出做一个分析。 如上图所示,实现了数据表的导入导出清空等等功能,本示例为“设备维护管理”当中的一个分项目操作,完整功能可查看以前的视频了解。 导出的数据表如下图所示: ![](http://image109.360doc.com/DownloadImg/2022/02/1515/239476886_2_20220215030424241_wm.jpeg)
这样就为我们保存一些历史数据提供了一个解决方法。 本数据的存储分类以年为单位进行,也可以根据不同的应用需求来进行设置。 ![](http://image109.360doc.com/DownloadImg/2022/02/1515/239476886_3_20220215030424679_wm.jpeg)
代码 数据导入过程 Private Sub DataInput() On Error Resume Next ' 导入数据 Dim isTrue As Integer isTrue = MsgBox("导入数据将清空数据,是否导入?", vbYesNo, "警告") If isTrue = 6 Then '---------- 导入数据 Dim xData As String xData = VBA.Trim(Me.ComboBox1.Value) If VBA.Len(xData) = 0 Then MsgBox "没有选择年份", vbInformation, "提示": Exit Sub xData = xData & "维修记录" If CheckData(xData) Then ''-----------导入前 清空数据 Me.ListView1.ListItems.Clear ThisWorkbook.Worksheets(xSheet).Select If ActiveSheet.UsedRange.Rows.Count > 1 Or ActiveSheet.UsedRange.Columns.Count > 1 Then ActiveSheet.Cells(2, 1).Resize(ActiveSheet.UsedRange.Rows.Count - 1, ActiveSheet.UsedRange.Columns.Count).Select With Selection .Delete .Cells.AutoFit .Columns.AutoFit End With End If InPutData xData '导入数据 ThisWorkbook.Save AddListView Me.ListView1, 1 '刷新ListView Me.Label3.Caption = "共 " & xCount & " 页" MsgBox "导入成功!", vbInformation, "提示" Else MsgBox "导入失败,数据不存在!", vbInformation, "提示" End If End If End Sub
导入数据过程 Private Sub InPutData(xData As String) '导入数据 Dim s As Worksheet, w As Worksheet Set w = ActiveSheet Set s = ThisWorkbook.Worksheets(xData) s.Select ActiveSheet.Cells(2, 1).Resize(ActiveSheet.UsedRange.Rows.Count - 1, ActiveSheet.UsedRange.Columns.Count).Select Selection.Copy w.Range("A2") w.Select Set w = Nothing Set s = Nothing End Sub
这样就对数据进行一个管理,就比较清晰了,需要哪一年的数据就导入哪一年的数据,不需要就重新新建下一年数据。如此,就不需要对同一个数据表进行多年的数据储存,也大大提高了数据处理能力,而且保存历史数据也不会出现丢失现象。 对于Excel表做为一个应用来说,数据管理是一个很重要的方面,如逻辑清楚了之后,就不会出现因数据量增大而变得臃肿的情况。
|