Board logo

標題: 如何把EXCEL的儲存格範圍A1:H3000輸出到記事本檔案的 D:\SP20110801.TXT [打印本頁]

作者: metrostar    時間: 2011-8-1 16:48     標題: 如何把EXCEL的儲存格範圍A1:H3000輸出到記事本檔案的 D:\SP20110801.TXT

學妹又來麻煩大家了

打開 EXCEL 檔有詳細說明喔

請帥哥/美女版主 帥哥/美女學長跟學姐

幫忙學妹完成



謝謝了
作者: chin15    時間: 2011-8-3 08:15

回復 1# metrostar


    結果不知是否正確
  1. Sub test()

  2.     Open "d:\SP20110801.txt" For Output As #1
  3.     For r = 1 To [A65536].End(xlUp).Row
  4.         If r = 1 Then
  5.             c = Cells(1, 11).Resize(, 7)

  6.             mystr = Join(Application.Transpose(Application.Transpose(c)), ",")
  7.         Else
  8.             x = Cells(r, 1)
  9.             If IsNumeric(x) Then
  10.                 x = [j1] & Application.Text(x, "0000")
  11.             Else
  12.                 x = [j1] & x
  13.             End If
  14.             mystr = x & "," & "20110801" & "," & Cells(r, 3) & "," & Cells(r, 4) & "," & Cells(r, 5) & "," & Cells(r, 6) & "," & Cells(r, 8)
  15.         End If

  16.         Print #1, mystr
  17.     Next
  18.     Close #1
  19. End Sub
複製代碼

作者: metrostar    時間: 2011-8-3 13:31

本帖最後由 metrostar 於 2011-8-3 13:33 編輯
回復  metrostar


    結果不知是否正確
chin15 發表於 2011-8-3 08:15


太棒了,可以了
多謝這位帥哥學長
學妹非常感動呢
您真是太強太強了
感謝您並祝賀您
幸福好運永遠降臨您身上

學妹另外一問題,如果不輸出 EXPORT TO TXT , 而把結果輸出 SHEET2呢 , 又要怎麼做呢?
請看新附上的檔案
作者: chin15    時間: 2011-8-3 14:35

回復 3# metrostar
對不起,我不是帥哥,學長更不敢當,才剛起步學習。
  1. Sub test()
  2. With Sheet1
  3.     For r = 1 To .[A65536].End(xlUp).Row
  4.         If r = 1 Then
  5.             mystr = Array("<TICKER>", "<DTYYYYSSDD>", "<OPEN>", "<HIGH>", "<LOW>", "<CLOSE>", "<VOL>")
  6.         Else
  7.             x = .Cells(r, 1)
  8.             If IsNumeric(x) Then
  9.                 x = .[j1] & Application.Text(x, "0000")
  10.             Else
  11.                 x = [j1] & x
  12.             End If
  13.             mystr = Array(x, "20110802", .Cells(r, 3), .Cells(r, 4), .Cells(r, 5), .Cells(r, 6), .Cells(r, 8))
  14.         End If

  15. Sheet2.Cells(r, 1).Resize(, 7) = mystr
  16. Next
  17. End With
  18. End Sub
複製代碼

作者: metrostar    時間: 2011-8-3 14:42

本帖最後由 metrostar 於 2011-8-3 14:44 編輯

帥哥學長做法是正確的,感恩啦

有點點小問題,日期要當天的年月日日期
像今天是 20110803 , 如果明天是 20110804
作者: chin15    時間: 2011-8-4 10:01

mystr = Array(x, Application.Text(Date, "yyyymmdd"), .Cells(r, 3), .Cells(r, 4), .Cells(r, 5), .Cells(r, 6), .Cells(r, 8))
改這行
作者: metrostar    時間: 2011-8-5 11:53

回復 6# chin15

謝謝樓上的帥哥學長


同樣的程式為什麼用在 book4.xls 跟 book3.xls 為什麼會這樣 ?????
真的好奇怪喔 , 不知原因出在那裡呢
帥哥學長提供的程式為什麼在這檔案不能用呢?

用在 Book3.xls 可以, 使用在這 Book4.xls 就不行
作者: oobird    時間: 2011-8-5 18:49

你的sheet1[j1]空無一物,當然是空白了
原來放在sheet1[j1]的m妳把他改成放在sheet2
代碼妳就得跟著改才會正確執行
If IsNumeric(x) Then
                x = Sheet2.[j1] & Application.Text(x, "0000")
            Else
                x = Sheet2.[j1] & x
            End If
作者: oobird    時間: 2011-8-5 18:54

回復 4# chin15


    建議反向思考,複製要用到的幾欄,然後再改格式會比在每一行中循環取數便捷些。
作者: metrostar    時間: 2011-8-16 08:30

回復 9# oobird

太棒了,可以了
多謝這位帥哥超級版主
學妹非常感動呢
您真是太強太強了
感謝您並祝賀您
幸福好運永遠降臨您身上

學妹 還有小小問題
如果遇到 I1儲存格的 MY 時 , J1儲存格為空
想要 A2:A65536 的純數字為4位數,不足前面補0
例如 A2 儲存格 目前為 12,要 0012 才對 怎麼做呢 ?
作者: Hsieh    時間: 2011-8-16 14:46

回復 10# metrostar
  1. Sub test()
  2. With Sheet1
  3.     For r = 1 To .[A65536].End(xlUp).Row
  4.         If r = 1 Then
  5.             Mystr = Array("<TICKER>", "<DTYYYYSSDD>", "<OPEN>", "<HIGH>", "<LOW>", "<CLOSE>", "<VOL>")
  6.         Else
  7.             x = IIf(Sheet2.[j1] = "", "'", Sheet2.[j1]) & Format(Val(.Cells(r, 1)), "0000")
  8.             Mystr = Array(x, Format(Date, "yyyymmdd"), .Cells(r, 3), .Cells(r, 4), .Cells(r, 5), .Cells(r, 6), .Cells(r, 8))
  9.         End If

  10.        Sheet2.Cells(r, 1).Resize(, 7) = Mystr
  11.    Next
  12. End With
  13. End Sub
複製代碼

作者: metrostar    時間: 2011-8-16 16:54

回復  metrostar
Hsieh 發表於 2011-8-16 14:46


多謝 超級帥哥版主 , 不好意思呢 ? 學妹沒表達清楚

只有純數字要變(不足4位補足4位) , 其它 數字+文字 (不變) 謝謝囉
作者: Hsieh    時間: 2011-8-16 17:00

  1. Sub test()
  2. With Sheet1
  3.     For r = 1 To .[A65536].End(xlUp).Row
  4.         If r = 1 Then
  5.             Mystr = Array("<TICKER>", "<DTYYYYSSDD>", "<OPEN>", "<HIGH>", "<LOW>", "<CLOSE>", "<VOL>")
  6.         Else
  7.             x = IIf(Sheet2.[j1] = "", "'", Sheet2.[j1]) & Format(.Cells(r, 1), "0000")
  8.             Mystr = Array(x, Format(Date, "yyyymmdd"), .Cells(r, 3), .Cells(r, 4), .Cells(r, 5), .Cells(r, 6), .Cells(r, 8))
  9.         End If

  10.        Sheet2.Cells(r, 1).Resize(, 7) = Mystr
  11.    Next
  12. End With
  13. End Sub
複製代碼
回復 12# metrostar
作者: metrostar    時間: 2011-8-16 17:05

太棒了,可以了
多謝這位超級帥哥版主
學妹非常感動呢
您真是太強太強了
感謝您並祝賀您
幸福好運永遠降臨您身上
作者: metrostar    時間: 2011-8-23 14:43

回復 14# metrostar

學妹又有別的問題麻煩大家了

輸出到 SH9.TXT 時,為什麼會出現空格 (不要空格才是正確的)
請看圖片




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)