中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
零基礎(chǔ)學(xué)Excel VBA-WE003 【VBA必修課,數(shù)據(jù)提取】

一、簡(jiǎn)單演示 和 代碼展示

B1 這個(gè)單元格,寫數(shù)據(jù)源的路徑。

第 2 行是表頭,A 列獲取文件名,B2 到 H2 是需要獲取數(shù)據(jù)在數(shù)據(jù)源中的單元格位置。

假如,我們現(xiàn)在需要額外提取一些新的單元格數(shù)據(jù),直接在第 2 行后面,寫上目標(biāo)單元格就可以,無需修改代碼。

二、新對(duì)象/方法的介紹

1. 小下劃線 _ 和單引號(hào) '

分別為代碼分行連接符,和注釋符。

2. DIR (pathname)

◆返回一個(gè) String,用以表示一個(gè)文件名、目錄名或文件夾名稱。

◆在第一次調(diào)用 Dir 函數(shù)時(shí),必須指定 pathname。Dir 會(huì)返回匹配 pathname 的第一個(gè)文件名。

再一次調(diào)用 Dir,如果沒有使用參數(shù),會(huì)返回匹配之前 pathname 的下一個(gè)文件名。

如果已沒有合乎條件的文件,則 Dir 會(huì)返回一個(gè)零長(zhǎng)度字符串 ('')。一旦返回'',并要再次調(diào)用 Dir 時(shí),就必須指定 pathname,否則會(huì)產(chǎn)生錯(cuò)誤。

◆ pathname支持用通配符 * 或者 ?指定多個(gè)文件,比如,*.xls*——所有版本的Excel文件,*.*——所有類型的文件。

3. Do While/Until

Loop

當(dāng)條件為 True 時(shí)(While),或直到條件變?yōu)?True 時(shí)(Until),重復(fù)執(zhí)行。

常見的結(jié)構(gòu)還有:

Do

Loop While/Until

Do

Exit Do

Loop

等等靈活的用法。

4. For i = (開始) to (結(jié)束) [Step 步長(zhǎng)]

Next

指定次數(shù)來重復(fù)執(zhí)行,變量 i 的變化范圍,就是執(zhí)行的次數(shù)。to后面還可以加step,指定步長(zhǎng),也就是每次 i 變化量,這個(gè)變化量,可以取負(fù)值。不指定的時(shí)候,默認(rèn)為 1 。

5. Formula

設(shè)置單元格的公式,'=(具體公式)' 的形式,可以跟變量靈活組合,比如類似 '=(公式前半)' & (變量1) & '(公式后半)' & (變量2) 的形式。

6. .Value = .Value

左邊的是需要賦值的變量,右邊是取值。作用就是把公式去掉,只保留單元格的值。

7. Instr (前者,后者)

從前者中找后者,返回找到的位置,如果找不到,返回 0 。

8. If (條件) Then

(結(jié)果)

End If

當(dāng) (結(jié)果) 跟 If 在同一行,End If 不用寫,就是這樣:If (條件) Then (結(jié)果)

還有 Else 的用法,當(dāng)條件/結(jié)果的語句都很短的時(shí)候,也可以放在同一行,就是這樣:If (條件) Then (結(jié)果1) Else: (結(jié)果2) 。注意,Else 后面有個(gè) : 。

三、執(zhí)行思路及過程分析

【1】確認(rèn)目的

我們需要把目標(biāo)文件夾里面的所有 Excel 文件的某些單元格取值,匯總在同一張表里。

下數(shù)據(jù)源的為——

子表名字是 Report,A1 到 H15 是數(shù)據(jù),我們把數(shù)據(jù)的內(nèi)容設(shè)置成單元格的地址,除了第 1 列,取名為 列頭,這樣方便我們獲取數(shù)據(jù)以后,進(jìn)行驗(yàn)證。

【2】Do循環(huán)實(shí)現(xiàn)多個(gè)文件的循環(huán),F(xiàn)or循環(huán)實(shí)現(xiàn)同一個(gè)文件多個(gè)單元格的循環(huán)

前面2個(gè)命令行,分別是獲取最大的行號(hào)和列號(hào),這個(gè)在上期有比較詳細(xì)的介紹。

通過 Dir 函數(shù),fName 獲得 Cfolder 這個(gè)路徑下第一個(gè) Excel 文件的文件名,所以,fName <> '' 為真,執(zhí)行 Do 里面的語句。

Range 這一行,在 A 列最大內(nèi)容行 rmax 的下一行 rmax 1,寫入 fName 的內(nèi)容,也就是文件名。

后面的 For 循環(huán),從第 2 列到最大列,分別進(jìn)行取值。

這里,我們先把后面這句 Value = Value 變成注釋,再次執(zhí)行,看看生成的公式是怎么樣的——

='G:\Excel 教程\WE003 數(shù)據(jù)提?。ú淮蜷_數(shù)據(jù)源)\E003 111\[數(shù)據(jù)源A.xlsx]Report'!F3

我們看到,其實(shí)就是直接用 = ,關(guān)聯(lián)到另外一個(gè)文件的對(duì)應(yīng)的單元格。

我們把公式跟代碼進(jìn)行對(duì)比——

Report 是子表的名字,由于獲取數(shù)據(jù)時(shí),不打開數(shù)據(jù)源,這個(gè)子表名字需要在代碼中提前寫入。

總的來說,就是用 & 把變量和公式里面的一些特殊符號(hào)連起來就可以了。

For 結(jié)束以后,一行的內(nèi)容就寫完了,rmax 自加 1 ,下一個(gè)文件的內(nèi)容,就會(huì)寫在下一行。這里,我們也可以把 rmax 語句,寫在 Do While 循環(huán)的第一句,每次讓系統(tǒng)去計(jì)算當(dāng)前最大行號(hào),這樣的話,就可以省略掉 rmax = rmax 1 。

然后,Dir 不帶任何參數(shù)運(yùn)行,返回的是下一個(gè)文件名,如果已經(jīng)是最后一個(gè)文件了,就返回一個(gè) '' 給fName,也就不滿足 Do 循環(huán)的條件,跳出 Do 循環(huán)。

整個(gè)程序也就結(jié)束了。

【3】功能引申。

第1個(gè)功能,為什么我們用 cmax ,而不是直接指定列數(shù)。好處在于我們可以隨時(shí)增減我們想要獲取的單元格數(shù)量,而不需要對(duì)宏進(jìn)行任何修改。

剛才我們?cè)诘谝徊糠忠呀?jīng)進(jìn)行了示范。

第2個(gè)功能引申,就是這個(gè)注釋的這個(gè) If 條件了。假如,我們的目標(biāo)文件夾除了我們需要的數(shù)據(jù)源,還有一些其它的 Excel 表,比如我們?cè)谀繕?biāo)文件夾新建一個(gè) Excel 文件,運(yùn)行起來就會(huì)出錯(cuò)。

為什么呢,因?yàn)槲覀児竭@里指定了目標(biāo) Excel 表的子表名字:Report,這個(gè)雜七雜八(za qi za ba)的表格并沒有 Report 這個(gè)子表,運(yùn)行就會(huì)出錯(cuò)。

為了避免這種情況,我們就加個(gè) If 條件,對(duì) Excel 文件先進(jìn)行一個(gè)判斷,我們這里用的是對(duì)名字進(jìn)行篩選。

四、本期宏完整展示

Sub Captt() rmax = [A1].CurrentRegion.Rows.Count() cmax = [AAA2].End(xlToLeft).Column() Cfolder = [B1] fName = Dir(Cfolder & '\*.xls*') Do While fName <> '' 'If InStr(fName, '數(shù)據(jù)源') > 0 Then Range('A' & rmax 1) = fName For i = 2 To cmax Cells(rmax 1, i).Formula = '='' & Cfolder & '\[' & fName _ & ']Report'!' & Cells(2, i) Cells(rmax 1, i).Value = Cells(rmax 1, i).Value Next rmax = rmax 1 'rmax = [A1].CurrentRegion.Rows.Count() 'End If fName = Dir LoopEnd Sub

五、后話

關(guān)注我的頻道,方便找到對(duì)應(yīng)的 視頻版 鏈接以及更新內(nèi)容。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Excel制表實(shí)例操作之(8)宏與VBA編程運(yùn)用
VBA|輸入公式和使用函數(shù)
批量將工作簿轉(zhuǎn)換為PDF----2
在excel表格里,在b列如何實(shí)現(xiàn)b=b a這樣的循環(huán)引用?
【VBA】excel中 #N/A = Error 2042
14.Excel VBA-單元格的基本操作之選擇、插入、刪除
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服