返回列表 上一主題 發帖

[發問] 有關CSV檔的問題(已解決)

[發問] 有關CSV檔的問題(已解決)

本帖最後由 icestormer 於 2012-4-27 10:00 編輯

'將工作表的內容儲存為CSV格式檔案
Sub WriteCsv()
    Dim myTxtFile As String, myFNo As Integer
    Dim myLastRow As Long, i As Long
      
    Application.ScreenUpdating = False
   
    myTxtFile = ActiveWorkbook.Path & "\Numazu.csv"
   
    Worksheets("郵遞區號2").Activate
    myLastRow = Range("A1").CurrentRegion.Rows.Count
   
    myFNo = FreeFile
    Open myTxtFile For Output As #myFNo
   
                     For i = 1 To myLastRow
                                                   Write #myFNo, Cells(i, 1), Cells(i, 2), Cells(i, 3), _
                                                                                    Cells(i, 4), Cells(i, 5), Cells(i, 6)
                    Next  

                     Close #myFNo            
    MsgBox "「郵遞區號2」工作表內的資料將建立為「Numazu.csv」檔案。"
End Sub
=========================================================================
請問 紅字部份程式碼 有沒有什麼法子可以使用雙迴圈且可以正確顯示成如下述的樣子?

如果資料是長這樣:
A              B            C              D
-----------------------------------------
都市     支局      區號     5碼區號
高雄     高2        200        20058
-----------------------------------------
能否用雙迴圈方式 ,讀取資料後>開打CSV檔 ,資料還是會保持上述的形態??

我自己用雙迴圈不管怎試都會變成
A           B         C                D
--------------------------------------
都市
支局
區號
5碼區號
高雄
高2
200
20058


由於資料可能多達 2 3X個以上 如果不能使用雙迴圈..就得像範列中那一樣要寫入幾個資料就得手動寫幾個CELLS才行了  不知有沒有其它更高的方式也能達成?

回復 2# c_c_lai


  謝 所以你的意思是 由於 沒有斷行 才會導致全部資料變成同一列??

TOP

For i = 1 To myLastRow
                                                  ' Write #myFNo, Cells(i, 1 ...
chen_cook 發表於 2012-4-19 15:02



    ' Write #myFNo, Cells(i, 1), Cells(i, 2), Cells(i, 3), _
                                                                                    Cells(i, 4), Cells(i, 5), Cells(i, 6)
                                                  Write #myFNo, Cells(i, 1) &"," & Cells(i, 2) &"," & Cells(i, 3) &"," & _
                                                                                    Cells(i, 4) &"," & Cells(i, 5) &"," & Cells(i, 6)

目前就是想把EXCEL中的資料轉存成CSV檔 這動作也沒有問題 例如 資料行有100行我就得設 cells(i,1)~~~cells(i,100) 我想採雙迴圈或陣列還是有其它高明的方法 不用從1設到100
遇到的問題是 如果我採用雙迴圈 就會導致我開頭說的那行 全部資料都變成同一列了...

TOP

本帖最後由 icestormer 於 2012-4-19 23:04 編輯

回復 8# Hsieh


感謝 版主  那程式碼可以順利執行 ^^

另外想請問 大家 另一個問題 如果我想設計一個密碼更新的巨集 ,也都會成功執行完成(有更新成功),
但我發現 好像必需要把密碼的值存在工作表上的儲存格上,並存檔後 才能有作用
不然只要我關掉程式 就=沒更新了 還是 原本 就是要把密碼儲存在某一個工作表上了?

TOP

        靜思自在 : 屋寬不如心寬。
返回列表 上一主題