→ hitoo:1.可以切..但是要一個一個切..也不知道怎麼取數字的前幾位 09/27 01:47
> -------------------------------------------------------------------------- <
作者: JieJuen (David) 看板: Office
: 推 JieJuen:1.資料剖析2.數值格式或Round3.VBA查詢 #18fQEgnS 6663 09/27 01:36
: → hitoo:1.可以切..但是要一個一個切..也不知道怎麼取數字的前幾位 09/27 01:47
您好,
首先我不太會用VBA,因此只能回答非VBA的部分~
1. 對於一個表,只要 資料剖析/完成 即可,不需"一個一個切"
對於很多表,都放在同一欄,也可以只做一次
有個小地方要注意,如果是用web查詢,要保留RTF格式
2. 公式
=ROUND(B9/10^5,)
或
=INT(B9/10^5)
或
=IF(COUNT(B9),ROUND(B9/10^5,),B9&"")
數值格式要改的話 一定是三個0一起去掉 例如格式為
0,
就會去掉右三位數 (表中的百萬)
0,,
就去掉右六位數 (十億.. 沒有億)
3. 我不知如何用VBA資料剖析可使其自動分欄..
錄好的碼切的位置似乎是固定的。
http://2y.drivehq.com/p/2002data.xls
開啟後
請在SHEET1資料剖析/完成 (如果已經試過就免了~)
SHEET1為WEB查詢,巨集只是錄資料剖析的動作
2 3分別是公式與格式
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.34.190
→ hitoo:謝謝 09/28 11:55
> -------------------------------------------------------------------------- <
作者: chungyuandye (養花種魚數月亮賞星星) 看板: Office
標題: Re: [算表] 不知道大家都怎麼抓觀測站的數據?
時間: Sat Sep 27 22:40:06 2008
A欄放你要的股票代號, 2002, 1301...
最好抓到前一年就好,這一年的在另外抓~~
Sub Ptt()
Dim Fn As Object
Set Fn = Application.WorksheetFunction
yearstart = 2000
yearend = 2007
tempvalue = 0
For i = 1 To 2
co_id = Cells(i, 1)
For j = yearstart To yearend
For k = 1 To 4
yearseason = j & "0" & k
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://mops.twse.com.tw/nas/t06sa18/" & yearseason & "/A02_" & co_id & "_" & yearseason & ".htm", _
Destination:=Range("B1"))
.Name = "PTT"
.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 = "4"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
For l = 1 To 16
teststring = Fn.Trim(Cells(30 + l, 2))
test = Mid(teststring, 1, 4)
If test = "本期淨利" Then
temp = Cells(30 + l, 3)
tempvalue = tempvalue + 1
Sheets("sheet2").Cells(tempvalue, 1) = co_id
Sheets("sheet2").Cells(tempvalue, 2) = yearseason
Sheets("sheet2").Cells(tempvalue, 3) = temp
Exit For
Else
temp = ""
End If
Next
ActiveSheet.Range("B:H").Delete
Next
Next
Next
End Sub
推 hitoo:謝謝 09/28 11:54
推 JieJuen:推 09/28 19:01
推 JieJuen:嗯 不過與原po需求不太相同 09/29 01:19
> -------------------------------------------------------------------------- <
作者: hitoo (◎☑) 看板: Office
※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
http://pphitoo.pixnet.net/album/photo/101245349
我想要自動抓下來的東西是像這樣,
而且要保留RFT格式,
這樣有可能辦到嗎?
推 JieJuen:單純這步 錄巨集即可.WebFormatting = xlWebFormattingRTF 09/29 01:30
> -------------------------------------------------------------------------- <
後續提問
抓下來後 每個儲存格裡面的文字數字間隔並不相同,
文章中檔案 排列卻相當整齊
請問是如何辦到的呢?
: : 有個小地方要注意,如果是用web查詢,要保留RTF格式
第一個有可能的地方是 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
第二個就是資料那個框附近有兩個打勾之處~
要勾外面那一個~
RTF是什麼 怎麼設定?
編輯查詢時 右上角選項裡
※ 重新編輯: JieJuen (09/30/2008)