VBA筆記10:技巧與案例

1.創(chuàng)建新的工作簿

知識(shí)點(diǎn):WorkbookWorksheet翘魄、SaveAs

Sub WbAdd()
    '創(chuàng)建1個(gè)名為"員工花名冊(cè)"的工作簿鼎天,并保存到本工作簿所在的文件夾中
    Dim Wb As Workbook, sht As Worksheet '定義一個(gè)Workbook對(duì)象和一個(gè)Worksheet對(duì)象
    Set Wb = Workbooks.Add               '新建一個(gè)工作簿
    Set sht = Wb.Worksheets(1)
    With sht
        .Name = "花名冊(cè)"        '修改第1個(gè)工作簿的標(biāo)簽名
        '設(shè)置表頭
        .Range("A1:F1") = Array("序號(hào)", "姓名", "性別", "出生年月", "參加工作時(shí)間", "備注")
    End With
    Wb.SaveAs ThisWorkbook.Path & "\員工花名冊(cè).xlsx"  '保存到當(dāng)前工作簿所在路徑
    ActiveWorkbook.Close
End Sub

2.工作簿是否已打開

知識(shí)點(diǎn):For循環(huán)Exit Sub暑竟、Workbooks.Count

Sub IsOpen()
    Dim i As Integer
    For i = 1 To Workbooks.Count
        If Workbooks(i).Name = "VBA練習(xí)_Range.xlsm" Then
            MsgBox "文件已打開"
            Exit Sub
        End If
    Next
    MsgBox "文件沒打開"
End Sub

3.工作表是否存在斋射、創(chuàng)建&移動(dòng)

知識(shí)點(diǎn):For Each循環(huán)Move

Sub IsOpen3()
    Dim sht As Worksheet
    For Each sht In Worksheets
        If sht.Name = "測(cè)試工作表" Then
            MsgBox "Yes"
            Worksheets("測(cè)試工作表").Move before:=Worksheets(1)
            Exit Sub
        End If
    Next
    MsgBox "None"
    Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "測(cè)試工作表"
End Sub

另一種寫法但荤,知識(shí)點(diǎn):On Error Resume Next罗岖、Is Nothing
注意:Is Nothing配合If語(yǔ)句肯定會(huì)報(bào)錯(cuò)(下標(biāo)越界),所以才加了On Error Resume Next

Sub IsOpen4()
    On Error Resume Next '當(dāng)出現(xiàn)報(bào)錯(cuò)的時(shí)候腹躁,繼續(xù)執(zhí)行程序
    If Worksheets("測(cè)試工作表") Is Nothing Then
        Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "測(cè)試工作表"
    Else
        Worksheets("測(cè)試工作表").Move before:=Worksheets(1)
    End If
End Sub

4.向未打開的工作簿里錄入數(shù)據(jù)

知識(shí)點(diǎn):With語(yǔ)句桑包、CurrentRegionResize纺非、:=

Sub WbInput()
    Dim wb As String, xrow As Integer, arr
    wb = ThisWorkbook.Path & "\員工花名冊(cè).xlsx"
    Workbooks.Open (wb)
    With ActiveWorkbook.Worksheets(1)
        xrow = .Range("A1").CurrentRegion.Rows.Count + 1
        arr = Array(xrow - 1, "張敏", "女", #7/8/1987#, #9/1/2010#, "10年新招")
        .Cells(xrow, 1).Resize(1, 6) = arr
    End With
    ActiveWorkbook.Close savechanges:=True
End Sub
CurrentRegion

以單元格為原點(diǎn)哑了,返回一個(gè)邊緣是任意空行和空列組合成的范圍,配合Rows.Count(行數(shù))烧颖、Columns.Count(列數(shù))弱左、Cells.Count(單元格數(shù)),可以實(shí)現(xiàn)索引炕淮、定位的作用

需要再深入挖一下這屬性的用法

運(yùn)算符" := "

:==在VBA里拆火,都是賦值符,前者是用來(lái)給方法內(nèi)部的參數(shù)賦值用涂圆,后者是用來(lái)給變量賦值的

5.表格數(shù)據(jù)分類

表格數(shù)據(jù)如下
image.png
需求:根據(jù)C列的數(shù)據(jù)榜掌,創(chuàng)建對(duì)應(yīng)名稱的獨(dú)立工作表(排重)

知識(shí)點(diǎn):Do While語(yǔ)句

Sub ShtAdd()
    Dim i As Integer, sht As Worksheet
    i = 2
    Set sht = Worksheets("花名冊(cè)")
    Do While sht.Cells(i, "C").Value <> ""
        On Error Resume Next
        If Worksheets(sht.Cells(i, "C").Value) Is Nothing Then
            Worksheets.Add after:=Worksheets(Worksheets.Count)
            ActiveSheet.Name = sht.Cells(i, "C").Value
        End If
        i = i + 1
    Loop
End Sub
需求:將對(duì)應(yīng)性別的數(shù)據(jù),存放到對(duì)應(yīng)的工作表里

知識(shí)點(diǎn):Do While語(yǔ)句

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乘综,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子套硼,更是在濱河造成了極大的恐慌卡辰,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邪意,死亡現(xiàn)場(chǎng)離奇詭異九妈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雾鬼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門萌朱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人策菜,你說我怎么就攤上這事晶疼【票幔” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵翠霍,是天一觀的道長(zhǎng)锭吨。 經(jīng)常有香客問我,道長(zhǎng)寒匙,這世上最難降的妖魔是什么零如? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮锄弱,結(jié)果婚禮上考蕾,老公的妹妹穿的比我還像新娘。我一直安慰自己会宪,他們只是感情好肖卧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狈谊,像睡著了一般喜命。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上河劝,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天壁榕,我揣著相機(jī)與錄音,去河邊找鬼赎瞎。 笑死牌里,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的务甥。 我是一名探鬼主播牡辽,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼敞临!你這毒婦竟也來(lái)了态辛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挺尿,失蹤者是張志新(化名)和其女友劉穎奏黑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體编矾,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饵婆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年宠漩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褐缠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片城须。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凹蜈,靈堂內(nèi)的尸體忽然破棺而出限寞,到底是詐尸還是另有隱情忍啸,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布昆烁,位于F島的核電站吊骤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏静尼。R本人自食惡果不足惜白粉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鼠渺。 院中可真熱鬧鸭巴,春花似錦、人聲如沸拦盹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)普舆。三九已至恬口,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沼侣,已是汗流浹背祖能。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛾洛,地道東北人养铸。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像轧膘,于是被迫代替她去往敵國(guó)和親钞螟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容