close
本篇是來騙吃騙吃的啦,也是應觀眾要求的第一篇。
談起EXCEL 是M$ 公司出版的,因此不分國界都要繳M$稅的。
稅繳了,可是大部份人大概所用功能可能不到50%。而你又用了多少?
本篇就來介紹一下EXCEL 的程式 (VBA、巨集) 功能。
一看到寫程式,一定很多人就打退堂鼓了。所以我就不從一般書籍的指令入門開始。M$公司當初應該也是有考慮到使用者,所以作了一個錄製功能。我就從此開始下手。
一、錄製巨集:就是把你的操作過程一五一十的如錄音一般錄下來。在你執行相關動作前需先開啟此一功能。(如下圖)
接下來,就是給巨集一個名稱(如下圖:名稱 get_1)
接著你就會看到出現一個按鈕讓你有停止錄製巨集的功能。(如下圖)
接下來執行您要執行的工作,此處以 ”elieyang來稿:Excel匯入外部資料步驟”( http://www.wretch.cc/blog/bonddealer/14368044 )作為參考,我就偷懶一下,不作相關解釋。我抓取的資料是 中鋼的基本資料 http://dj.mybank.com.tw/z/zc/zca/zca_2002.asp.htm
抓取完資料後,請於停止錄製巨集功能上按停止。
接下來,參照下圖去看你剛才所錄製的程式碼。
以下為所錄製的程式,就是你剛才抓取中鋼基本資料的過程。
程式碼清析版,請注意紅字部份。
Sub get_1()
' get_1 Macro
' Stanley 在 2008/11/11 錄製的巨集
'
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://dj.mybank.com.tw/z/zc/zca/zca_2002.asp.htm", Destination:=Range( _
"A1"))
.Name = "zca_2002.asp"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "3"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
紅字1:URL;http://dj.mybank.com.tw/z/zc/zca/zca_2002.asp.htm,就是抓取的網頁位置。
紅字2:WebTables = "3",網頁中可能有多個表格;那一個是你要的。
但是錄製的巨集get_1,只能一直重覆你剛才的動作;抓取中鋼基本資料。
接下來就是要修改為可以抓取其他資料的過程
修改如下請注意上面提示紅字部份的改變及新加入的藍色部份,讓你的程式變成可由EXCEL 活頁簿傳資料給程式;以達成抓取多項資料。
Sub Get_1()
' get_1 Macro
' Stanley 在 2008/8/16 錄製的巨集
'定義一些傳遞參數(資料)
Dim stockid
st = Sheets("UI").Range("B2").Value
stockid = Sheets("UI").Range("A2").Value
type1 = Sheets("UI").Range("D2").Value
tables = Sheets("UI").Range("C2").Value
myurl = "URL;http://dj.mybank.com.tw/z/zc/" & type1 & stockid & ".asp.htm"
Sheets("TMP").Select
Cells.Select
Selection.Delete Shift:=xlUp
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:=myurl, Destination:=Range("A1"))
.Name = "5&stockid=2330_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = tables
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
End Sub
談起EXCEL 是M$ 公司出版的,因此不分國界都要繳M$稅的。
稅繳了,可是大部份人大概所用功能可能不到50%。而你又用了多少?
本篇就來介紹一下EXCEL 的程式 (VBA、巨集) 功能。
一看到寫程式,一定很多人就打退堂鼓了。所以我就不從一般書籍的指令入門開始。M$公司當初應該也是有考慮到使用者,所以作了一個錄製功能。我就從此開始下手。
一、錄製巨集:就是把你的操作過程一五一十的如錄音一般錄下來。在你執行相關動作前需先開啟此一功能。(如下圖)
接下來,就是給巨集一個名稱(如下圖:名稱 get_1)
接著你就會看到出現一個按鈕讓你有停止錄製巨集的功能。(如下圖)
接下來執行您要執行的工作,此處以 ”elieyang來稿:Excel匯入外部資料步驟”( http://www.wretch.cc/blog/bonddealer/14368044 )作為參考,我就偷懶一下,不作相關解釋。我抓取的資料是 中鋼的基本資料 http://dj.mybank.com.tw/z/zc/zca/zca_2002.asp.htm
抓取完資料後,請於停止錄製巨集功能上按停止。
接下來,參照下圖去看你剛才所錄製的程式碼。
以下為所錄製的程式,就是你剛才抓取中鋼基本資料的過程。
程式碼清析版,請注意紅字部份。
Sub get_1()
' get_1 Macro
' Stanley 在 2008/11/11 錄製的巨集
'
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://dj.mybank.com.tw/z/zc/zca/zca_2002.asp.htm", Destination:=Range( _
"A1"))
.Name = "zca_2002.asp"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "3"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
紅字1:URL;http://dj.mybank.com.tw/z/zc/zca/zca_2002.asp.htm,就是抓取的網頁位置。
紅字2:WebTables = "3",網頁中可能有多個表格;那一個是你要的。
但是錄製的巨集get_1,只能一直重覆你剛才的動作;抓取中鋼基本資料。
接下來就是要修改為可以抓取其他資料的過程
修改如下請注意上面提示紅字部份的改變及新加入的藍色部份,讓你的程式變成可由EXCEL 活頁簿傳資料給程式;以達成抓取多項資料。
Sub Get_1()
' get_1 Macro
' Stanley 在 2008/8/16 錄製的巨集
'定義一些傳遞參數(資料)
Dim stockid
st = Sheets("UI").Range("B2").Value
stockid = Sheets("UI").Range("A2").Value
type1 = Sheets("UI").Range("D2").Value
tables = Sheets("UI").Range("C2").Value
myurl = "URL;http://dj.mybank.com.tw/z/zc/" & type1 & stockid & ".asp.htm"
Sheets("TMP").Select
Cells.Select
Selection.Delete Shift:=xlUp
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:=myurl, Destination:=Range("A1"))
.Name = "5&stockid=2330_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = tables
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
End Sub
全站熱搜
留言列表