- Excel VBA范例大全
- 羅剛君編著
- 5017字
- 2018-12-29 15:15:25
第6章 修改選區(qū)數(shù)據(jù)
前一章對單元格及區(qū)域之格式設(shè)置做了詳細(xì)的實例講解,本章主要對修改數(shù)據(jù)如刪除、填充、隱藏等操作進行分析。
● 實例41區(qū)域數(shù)據(jù)互換
● 實例42填充空白單元格
● 實例43填充公式
● 實例44批量填充單元格數(shù)據(jù)
● 實例45刪除“不采用”建議字符所在行
● 實例46瞬間刪除空白行
● 實例47瞬間刪除空白單元格所在行
● 實例48瞬間刪除選區(qū)空格
● 實例49行列之隱藏與取消
● 實例50符合三個條件則匯總數(shù)據(jù)
● 實例51匯總行列值
實例41 區(qū)域數(shù)據(jù)互換
【技巧說明】 對多個同大小之區(qū)域進行數(shù)據(jù)輪換。
【案例介紹】 如圖2.24所示,某班清潔工作中將成員分為4組,為了公平,每天讓4組成員互換一次,使每個組都能參與到所有的工作中。

圖2.24 清潔工作分配表
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub數(shù)據(jù)輪換() Dim myVal(), i As Integer, j As Integer On Error Resume Next '排錯 j=Selection.Areas.Count '統(tǒng)計選擇了多少個單元格區(qū)域 ReDim myVal(1 To j) '重新定義數(shù)組 With Selection For i=1 To j '如果各個區(qū)域大小不一致,則退出程序 If .Areas(1).Cells.Count <> .Areas(i).Cells.Count Then Exit Sub Next i For i=1 To j myVal(i)=.Areas(i).Value Next i .Areas(1)=myVal(j) For i=1 To j .Areas(i+1)=myVal(i) Next i End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 按住Ctrl鍵,分別選擇4組姓名區(qū)域,如圖2.25所示,然后用快捷鍵Alt+F8調(diào)出運行宏窗口,單擊“執(zhí)行”按鈕。
[6] 程序已將4個區(qū)域中的數(shù)據(jù)交換一次,如圖2.26所示。若再運行一次程序,則繼續(xù)轉(zhuǎn)換區(qū)域中的數(shù)據(jù)。

圖2.25 選擇4組姓名區(qū)域

圖2.26 轉(zhuǎn)換一次后的數(shù)據(jù)
提示
本實例參見光盤樣本:..\第2部分\實例41.xlsm。
【相關(guān)知識說明】
(1)Areas:由選定區(qū)域內(nèi)的多個子區(qū)域或連續(xù)單元格塊組成的集合。本例中用于統(tǒng)計區(qū)域個數(shù)。
(2)With…End With:在一個單一對象或一個用戶定義類型上執(zhí)行一系列的語句。主要用于簡化代碼,同時也加快程序運行。請看以下簡化代碼前后的區(qū)別,兩者功能完全一致。
代碼一(未使用With語句):
activecll.Font.Name="宋體" activecll.Font.FontStyle="加粗 傾斜" activecll.Font.Size=10 activecll.Font.ThemeColor=xlThemeColorLight2 activecll.Font.TintAndShade=0.4 activecll.Font.ThemeFont=xlThemeFontMinor
代碼二(使用With簡化代碼):
With activecll.Font .Name="宋體" .FontStyle="加粗 傾斜" .Size=10 .ThemeColor=xlThemeColorLight2 .TintAndShade=0.4 .ThemeFont=xlThemeFontMinor End With
實例42 填充空白單元格
【技巧說明】 批量將選區(qū)中空白單元格用上一個非空單元格數(shù)據(jù)填充。
【案例介紹】 如圖2.27所示,輸入數(shù)據(jù)時省略了省名,現(xiàn)需要填充所有空白單元格。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub填充() Dim rng As Range Set rng=Range("A2:A" & Cells(1048576, 2).End(xlUp).Row) With rng .Select '選擇A列數(shù)據(jù) .SpecialCells(xlCellTypeBlanks).Select '選擇空白單元格 Selection.FormulaR1C1="=R[-1]C" '輸入公式 rng=.Value '將公式轉(zhuǎn)換為值 End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 使用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,區(qū)域中的空白單元格即全部填充完畢,如圖2.28所示。

圖2.27 人口普查簡表

圖2.28 填充后的普查表
提示
本實例參見光盤樣本:..\第2部分\實例42.xlsm。
實例43 填充公式
【技巧說明】 填充公式。
【案例介紹】 如圖2.29所示,產(chǎn)量表分多個組,D3單元格公式需要向下填充,手工下拉將產(chǎn)生多余公式,且無法跳過B組的標(biāo)題。利用VBA代碼則能完善解決此問題。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub填充公式() Dim rng As Range, rg As Range For Each rng In Range("d4:d" & Range("c1048576").End(xlUp).Row) Range("d3").Copy If rng="" And VBA.IsNumeric(rng.Offset(0,-1)) And rng.Offset (0,-1) <> "" Then If rg Is Nothing Then Set rg=rng Set rg=Application.Union(rg, rng) End If End If Next rg.Select ActiveSheet.Paste Range("d3").Select End Sub
Else
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 使用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,則D3單元格向下全部填充完畢,如圖2.30所示。

圖2.29 待填充產(chǎn)量表

圖2.30 填充后的產(chǎn)量表
提示
本實例參見光盤樣本:..\第2部分\實例43.xlsm。
【相關(guān)知識說明】
(1)IsNumeric:返回Boolean值,指出表達式的運算結(jié)果是否為數(shù)字。本例中用于排除單元格左側(cè)是“制表”之狀況,只有左側(cè)是數(shù)字時才填充公式。
(2)Copy:復(fù)制數(shù)據(jù)。
(3)Paste:粘貼數(shù)據(jù)。
實例44 批量填充單元格數(shù)據(jù)
【技巧說明】 批量填充單元格中省略的數(shù)據(jù)。
【案例介紹】 Excel的選擇性粘貼中有加減乘除,但卻沒有連接功能,即將文本連接到區(qū)域中各單元格數(shù)據(jù)前或者后。如圖2.31所示,此段均為四川地區(qū),現(xiàn)需要將每個地區(qū)加前綴“四川”。

圖2.31 原始數(shù)據(jù)
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub選擇性粘貼_連接() Dim a As Byte, b As Range, rng As Range If Selection.Count > 1 Or Selection="" Then MsgBox "請選擇單個非空 單元格再執(zhí)行本程序", 64, "提示": Exit Sub a=Application.InputBox("1為鏈接在前;2為鏈接在后。", "請輸入鏈接選項", "1", 100, 100, Type:=1) Set b=Application.InputBox("請輸入粘貼區(qū)域:","區(qū)域","a1",100,100, Type:=8) For Each rng In b If a=1 Then rng=Selection.Text & rng.Text ElseIf 2=2 Then rng=rng.Text & Selection.Text End If Next End Sub
[4] 在原區(qū)域外添加一個輔助單元格,輸入“四川”,并選中該單元格。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,彈出對話框提示輸入鏈接選項,如圖2.32所示。
[6] 確定后,彈出對話框提示輸入粘貼區(qū)域,可以用鼠標(biāo)選擇區(qū)域地址,如圖2.33所示。

圖2.32 輸入鏈接選項

圖2.33 輸入粘貼區(qū)域
[7] 確定后,程序?qū)x定區(qū)域之?dāng)?shù)據(jù)加入前綴,如圖2.34所示。
提示
如果選擇了空單元格或者選中多個單元格,則無法執(zhí)行本程序。

圖2.34 添加前綴后的數(shù)據(jù)
提示
本實例參見光盤樣本:..\第2部分\實例44.xlsm。
實例45 刪除“不采用”建議字符所在行
【技巧說明】 刪除“不采用”建議字符所在行。
【案例介紹】 如圖2.35所示,員工建議方案有部分采用,部分未采用。現(xiàn)需清理未采用之方案。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub清除未采用之方案() Dim rng As Range For Each rng In Range([c2], Cells(1048576, 3).End(xlUp)) If rng="不采用" Then '限定條件 rng.EntireRow.Delete '符合條件的都刪除整行 End If Next '檢測下一個 End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,程序執(zhí)行后目標(biāo)區(qū)域中包含“不采用”字樣之行全部刪除,如圖2.36所示。
提示
本實例參見光盤樣本:..\第2部分\實例45.xlsm。

圖2.35 員工建議表

圖2.36 刪除“不采用”后的表
實例46 瞬間刪除空白行
【技巧說明】 瞬間刪除無數(shù)據(jù)之行。
【案例介紹】 如圖2.37所示,若存在既未入庫也無進庫的情況,則倉庫進出表中整行除日期外均為空白,現(xiàn)為節(jié)約打印紙張,需刪除所有空白行。

圖2.37 倉庫進出表
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub清除空白數(shù)據(jù)行() Dim i As Long For i=Cells(1048576, 1).End(xlUp).Row To 2 Step-1 If WorksheetFunction.CountA(Cells(i, 1).EntireRow)=1 Then'限定條件 Cells(i, 1).EntireRow.Delete '符合條件的都刪除整行 End If Next '檢測下一個 End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,程序執(zhí)行后目標(biāo)區(qū)域中的空白行全部刪除,如圖2.38所示。

圖2.38 刪除空白行后的倉庫進出表
提示
本實例參見光盤樣本:..\第2部分\實例46.xlsm。
【相關(guān)知識說明】
Step:Step用于For…Next時表示循環(huán)計數(shù)之步長,如果沒有指定,則Step的默認(rèn)值為1。本例中因為是從大到小循環(huán),故參數(shù)使用負(fù)數(shù)。
For…Next的具體語法為(方括號中為可選參數(shù)):
For counter=start To end [Step step] [statements] [Exit For] [statements] Next [counter]
實例47 瞬間刪除空白單元格所在行
【技巧說明】 瞬間刪除空白單元格所在行。
【案例介紹】 本例以例45的另一種狀況為例進行演示。如圖2.39所示,未采用之建議均為空白,現(xiàn)需刪除該列中所有空白單元格所在行的數(shù)據(jù)。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub清除空白數(shù)據(jù)行() Dim i As Long For i=Cells(1048576, 2).End(xlUp).Row To 3 Step-1 If Cells(i, 3)="" Then '如果單元格為空白 Cells(i, 1).EntireRow.Delete '符合條件的都刪除整行 End If Next '檢測下一個 End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,程序執(zhí)行后第三列為空白之單元格所在行全部刪除,如圖2.40所示。

圖2.39 帶有空白單元格的建入議表

圖2.40 刪除空白單元格所在行之后的建議表
提示
本實例參見光盤樣本:..\第2部分\實例47.xlsm。
實例48 瞬間刪除選區(qū)空格
【技巧說明】 瞬間刪除選區(qū)數(shù)據(jù)中輸入的空格。
【案例介紹】 如圖2.41所示,產(chǎn)值表公式引用了的單價參照區(qū)域之?dāng)?shù)據(jù)。而產(chǎn)值表的產(chǎn)品名稱因輸入了空格導(dǎo)致公式結(jié)果出錯,現(xiàn)需刪除已用區(qū)域中所有空格,排除公式錯誤。

圖2.41 存在錯誤的產(chǎn)值表
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub排除空格() ActiveSheet.UsedRange.Replace What:=" ", Replacement:="", LookAt:=xlPart End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,程序執(zhí)行后產(chǎn)值表已用區(qū)域中所有空格全部刪除,公式結(jié)果也已修正。
提示
本實例參見光盤樣本:..\第2部分\實例48.xlsm。
實例49 行列之隱藏與取消
【技巧說明】 行列之隱藏與取消。
【案例介紹】 如圖2.42所示,成績表中有部分人缺考,現(xiàn)查看資料需要將之隱藏。

圖2.42 成績表
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub隱藏與取消() MsgBox "現(xiàn)在隱藏第六行", 64, "隱藏" Rows(6).Hidden=True MsgBox "現(xiàn)在取消所有隱藏", 64, "全部顯示" Cells.EntireRow.Hidden=False MsgBox "現(xiàn)在隱藏第六行和第九行", 64, "隱藏" Range("6:6,9:9").EntireRow.Hidden=True MsgBox "現(xiàn)在取消所有隱藏", 64, "全部顯示" Cells.EntireRow.Hidden=False MsgBox "現(xiàn)在隱藏第六至第九行", 64, "隱藏" Rows("6:9").Hidden=True MsgBox "現(xiàn)在取消所有隱藏", 64, "全部顯示" Cells.EntireRow.Hidden=False End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,程序執(zhí)行后將連續(xù)彈出6次對話框,分別執(zhí)行6段程序,包括隱藏第六行、取消隱藏(三次)、隱藏第六行和第九行、隱藏第六行至第九行。讀者可以每執(zhí)行一段程序比較一下單元格區(qū)域中的變化。
提示
本實例參見光盤樣本:..\第2部分\實例49.xlsm。
【相關(guān)知識說明】
(1)Rows:返回一個Range對象,代表指定單元格區(qū)域中的行,在不使用對象識別符的情況下使用此屬性等效于使用ActiveSheet.Rows。
(2)Hidden:返回或設(shè)置一個Variant值,指明是否隱藏行或列,將此屬性設(shè)置為True以隱藏行或列。指定的區(qū)域必須占據(jù)整個行或整個列。
實例50 符合三個條件則匯總數(shù)據(jù)
【技巧說明】 符合三個條件則匯總數(shù)據(jù)。
【案例介紹】 如圖2.43所示,這是一份生產(chǎn)日報表,現(xiàn)需對其匯總。若客戶、型體和二次加工項相同,則將數(shù)量和金額進行匯總,結(jié)果產(chǎn)生在匯總表中。

圖2.43 生產(chǎn)日報表
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub匯總() Dim i&, tim&, j% tim=Hour(Now()) * 3600+Minute(Now()) * 60+Second(Now()) Application.ScreenUpdating=False '禁止刷新屏幕 Sheet2.Cells.Clear '清除原數(shù)據(jù) Rows("1:3").Copy Sheet2.Range("a1") '復(fù)制標(biāo)題 Sheet2.Columns("d:f").Delete Shift:=xlToLeft For i=4 To Range("A1048576").End(xlUp).Row '給變量i賦值,從4到A列最后一個非空行數(shù) Cells(i, "j")=Cells(i, "b") & Cells(i, "c") & Cells(i, "d") '在j列產(chǎn)生一個輔助列 Next '重復(fù)下一個 With Sheet2 For i=4 To Range("A65536").End(xlUp).Row '給變量i賦值,從4到A列最后一個非空行數(shù) If .Columns("I").Find(Cells(i, "j")) Is Nothing Then '如果匯總表I列不存在輔助列J列之?dāng)?shù)據(jù) Range("b" & i & ":e" & i).Copy .Range("A1048576").End(xlUp). Offset(1, 0) '將A列除外的本行數(shù)據(jù)復(fù)制到匯總表 '對數(shù)量和金額進行條件匯總 .Range("A1048576").End(xlUp).Offset(0, 4)= Application.WorksheetFunction.SumIf(Range("j4:j1048576"), Cells(i, "j"),Range("H4:H1048576")) .Range("A1048576").End(xlUp).Offset(0, 5)= Application.WorksheetFunction.SumIf(Range("j4:j1048576"), Cells(i, "j"),Range("I4:I1048576")) .Range("A1048576").End(xlUp).Offset(0, 6)=Cells(i, "j") .Range("A1048576").End(xlUp).Offset(0, 3)=Cells(i, "g") End If Next .Columns("g").Delete '刪除輔助列 End With Columns("j").Delete '刪除輔助列 MsgBox "運行時間總共" & (Hour(Now()) * 3600+Minute(Now()) * 60+ Second(Now()))-tim & "秒!", vbOKOnly, "運行完畢"'報告運行時間 Application.ScreenUpdating=True '禁止刷新屏幕 Call邊框 End Sub Private Sub邊框() Sheet2.Activate Sheet2.Range("A3:f" & [f1048576].End(xlUp).Row).Select With Selection.Borders '邊框 .LineStyle=xlContinuous '線型 .Weight=xlThin '粗細(xì) End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,程序執(zhí)行后將彈出運行時間對話框。匯總結(jié)果如圖2.44所示。

圖2.44 匯總結(jié)果
提示
本實例參見光盤樣本:..\第2部分\實例50.xlsm。
【相關(guān)知識說明】
(1)Hour(Now()) * 3600+Minute(Now()) * 60+Second(Now()):將當(dāng)前時間轉(zhuǎn)為秒。程序運行完后再取得一個當(dāng)前時間,兩個時間相減即為程序運行時間。
(2)Cells.Clear:將工作表中的所有數(shù)據(jù)清除。
(3)Borders:代表Range或Style對象的4個邊框。本例中為新生成數(shù)據(jù)區(qū)域加邊框。
實例51 匯總行列值
【技巧說明】 自動將區(qū)域數(shù)據(jù)按行及按列匯總。
【案例介紹】 如圖2.45所示,報表需要按行及按列匯總,并且在行標(biāo)題及列標(biāo)題處生成“匯總”。

圖2.45 待匯總之?dāng)?shù)據(jù)
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub匯總行列值() Dim rng1, rng2, r As Integer, c As Integer, i As Integer, j As Integer, myArray As Variant, Selectionss As Range Set Selectionss=Application.InputBox("請輸入?yún)R總區(qū)域(不含標(biāo)題行)" & Chr(10) & "也可以用鼠標(biāo)選擇區(qū)域", "定位", , 0, 0, , , 8) With Selectionss r=.Rows.Count: c=.Columns.Count myArray=.Resize(r+1, c+1) Application.ScreenUpdating=False rng1=.Offset(-1, 0) rng2=.Offset(0,-1) .Offset(-1, 1)="匯總" .Offset(-1, 0)=rng1 .Offset(1,-1)="匯總" .Offset(0,-1)=rng2 For i=1 To r For j=1 To c myArray(i, c+1)=myArray(i, c+1)+myArray(i, j) myArray(r+1, j)=myArray(r+1, j)+myArray(i, j) myArray(r+1, c+1)=myArray(r+1, c+1)+myArray(i, j) Next j Next i .Resize(r+1, c+1)=myArray End With Application.ScreenUpdating=True End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,將彈出選擇區(qū)域之對話框,選擇待匯總之區(qū)域(不包括行標(biāo)題和列標(biāo)題,只選擇數(shù)據(jù)區(qū)域B2∶E10)后程序?qū)⒆詣訁R總出行列值,如圖2.46所示。

圖2.46 匯總后數(shù)據(jù)
提示
本實例參見光盤樣本:..\第2部分\實例51.xlsm。
【相關(guān)知識說明】
Resize:調(diào)整指定區(qū)域的大小。返回Range對象,該對象代表調(diào)整后的區(qū)域。例如,以下代碼表示將A1調(diào)整為A1:B2:
range("a1").Resize(2,2)
- 五筆打字精品教程
- PPT辦公高手應(yīng)用技巧
- 用友ERP-U8(8.72版)標(biāo)準(zhǔn)財務(wù)模擬實訓(xùn)
- 高效隨身查:PPT2021必學(xué)的美化設(shè)計應(yīng)用技巧(視頻教學(xué)版)
- 中文版AutoCAD 2016園林設(shè)計從入門到精通
- Office 2003辦公應(yīng)用實戰(zhàn)從入門到精通
- Flash CS6核心應(yīng)用案例教程(全彩慕課版)
- 新編Word/Excel/PPT商務(wù)辦公應(yīng)用大全(2016實戰(zhàn)精華版)
- Excel市場分析應(yīng)用之道
- Mapping and Visualization with SuperCollider
- 做好PPT就靠這幾招:圖解力 吸引力 說服力(全彩圖解版)
- 魔法數(shù)學(xué)(第1季)
- 電腦高效辦公
- Office 2013入門與提高(超值版)
- Excel物流應(yīng)用教程