工作表的操作有一個很重要的項目,就是保存和替換數(shù)據(jù)。 就是說,當我們制作完成一個表的時候,想要另存為一個新表,或者將已經存在的工作表導入當前工作表中。 本節(jié)將提供一種思路,來對表的導入導出做一個分析。 如上圖所示,實現(xiàn)了數(shù)據(jù)表的導入導出清空等等功能,本示例為“設備維護管理”當中的一個分項目操作,完整功能可查看以前的視頻了解。 導出的數(shù)據(jù)表如下圖所示: 這樣就為我們保存一些歷史數(shù)據(jù)提供了一個解決方法。 本數(shù)據(jù)的存儲分類以年為單位進行,也可以根據(jù)不同的應用需求來進行設置。 代碼 數(shù)據(jù)導入過程 Private Sub DataInput() On Error Resume Next ' 導入數(shù)據(jù) Dim isTrue As Integer isTrue = MsgBox("導入數(shù)據(jù)將清空數(shù)據(jù),是否導入?", vbYesNo, "警告") If isTrue = 6 Then '---------- 導入數(shù)據(jù) 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 ''-----------導入前 清空數(shù)據(jù) 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 '導入數(shù)據(jù) ThisWorkbook.Save AddListView Me.ListView1, 1 '刷新ListView Me.Label3.Caption = "共 " & xCount & " 頁" MsgBox "導入成功!", vbInformation, "提示" Else MsgBox "導入失敗,數(shù)據(jù)不存在!", vbInformation, "提示" End If End If End Sub
導入數(shù)據(jù)過程 Private Sub InPutData(xData As String) '導入數(shù)據(jù) 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
這樣就對數(shù)據(jù)進行一個管理,就比較清晰了,需要哪一年的數(shù)據(jù)就導入哪一年的數(shù)據(jù),不需要就重新新建下一年數(shù)據(jù)。如此,就不需要對同一個數(shù)據(jù)表進行多年的數(shù)據(jù)儲存,也大大提高了數(shù)據(jù)處理能力,而且保存歷史數(shù)據(jù)也不會出現(xiàn)丟失現(xiàn)象。 對于Excel表做為一個應用來說,數(shù)據(jù)管理是一個很重要的方面,如邏輯清楚了之后,就不會出現(xiàn)因數(shù)據(jù)量增大而變得臃腫的情況。
|