【问题标题】:Excel VBA to save file name as CSV and Cell ValueExcel VBA 将文件名保存为 CSV 和单元格值
【发布时间】:2015-12-22 15:42:35
【问题描述】:

我有一个宏可以将一系列单元格导出到 csv,这很好,我现在需要它来调用文件作为单元格值,最好是 B2。

提前致谢。

宏:

Sub WriteCSVFile()

    Dim My_filenumber As Integer Dim logSTR As String

    My_filenumber = FreeFile

    logSTR = logSTR & Cells(2, "B").Value & " , " 
    logSTR = logSTR & Cells(3, "B").Value & " , " 
    logSTR = logSTR & Cells(4, "B").Value & " , " 
    logSTR = logSTR & Cells(5, "B").Value & " , " 
    logSTR = logSTR & Cells(6, "B").Value & " , " 
    logSTR = logSTR & Cells(7, "B").Value & " , " 
    logSTR = logSTR & Cells(8, "B").Value & " , " 
    logSTR = logSTR & Cells(9, "B").Value & " , " 
    logSTR = logSTR & Cells(10, "B").Value & " , " 
    logSTR = logSTR & Cells(11, "B").Value & " , " 
    logSTR = logSTR & Cells(12, "B").Value & " , " 
    logSTR = logSTR & Cells(13, "B").Value & " , " 
    logSTR = logSTR & Cells(14, "B").Value & " , " 
    logSTR = logSTR & Cells(15, "B").Value & " , " 
    logSTR = logSTR & Cells(16, "B").Value & " , " 
    logSTR = logSTR & Cells(18, "B").Value & " , " 
    logSTR = logSTR & Cells(19, "B").Value & " , " 
    logSTR = logSTR & Cells(20, "B").Value & " , " 
    logSTR = logSTR & Cells(21, "B").Value & " , " 
    logSTR = logSTR & Cells(22, "B").Value & " , " 
    logSTR = logSTR & Cells(23, "B").Value & " , " 
    logSTR = logSTR & Cells(24, "B").Value & " , " 
    logSTR = logSTR & Cells(25, "B").Value & " , " 
    logSTR = logSTR & Cells(26, "B").Value & " , " 
    logSTR = logSTR & Cells(27, "B").Value & " , " 
    logSTR = logSTR & Cells(28, "B").Value & " , " 
    logSTR = logSTR & Cells(29, "B").Value & " , " 
    logSTR = logSTR & Cells(30, "B").Value & " , " 
    logSTR = logSTR & Cells(31, "B").Value & " , " 
    logSTR = logSTR & Cells(32, "B").Value & " , " 
    logSTR = logSTR & Cells(33, "B").Value & " , " 
    logSTR = logSTR & Cells(35, "B").Value & " , " 
    logSTR = logSTR & Cells(36, "B").Value & " , " 
    logSTR = logSTR & Cells(37, "B").Value & " , " 
    logSTR = logSTR & Cells(38, "B").Value & " , " 
    logSTR = logSTR & Cells(39, "B").Value & " , " 
    logSTR = logSTR & Cells(40, "B").Value & " , " 
    logSTR = logSTR & Cells(41, "B").Value & " , " 
    logSTR = logSTR & Cells(42, "B").Value & " , " 
    logSTR = logSTR & Cells(45, "B").Value & " , " 
    logSTR = logSTR & Cells(46, "B").Value & " , " 
    logSTR = logSTR & Cells(47, "B").Value & " , " 
    logSTR = logSTR & Cells(48, "B").Value & " , " 
    logSTR = logSTR & Cells(49, "B").Value & " , " 
    logSTR = logSTR & Cells(50, "B").Value & " , " 
    logSTR = logSTR & Cells(51, "B").Value & " , " 
    logSTR = logSTR & Cells(52, "B").Value & " , " 
    logSTR = logSTR & Cells(54, "B").Value & " , " 
    logSTR = logSTR & Cells(55, "B").Value & " , " 
    logSTR = logSTR & Cells(56, "B").Value & " , " 
    logSTR = logSTR & Cells(57, "B").Value & " , " 
    logSTR = logSTR & Cells(58, "B").Value & " , " 
    logSTR = logSTR & Cells(59, "B").Value & " , " 
    logSTR = logSTR & Cells(60, "B").Value & " , " 
    logSTR = logSTR & Cells(61, "B").Value & " , " 
    logSTR = logSTR & Cells(62, "B").Value & " , " 
    logSTR = logSTR & Cells(63, "B").Value & " , " 
    logSTR = logSTR & Cells(64, "B").Value & " , " 
    logSTR = logSTR & Cells(66, "B").Value & " , " 
    logSTR = logSTR & Cells(67, "B").Value & " , " 
    logSTR = logSTR & Cells(68, "B").Value & " , " 
    logSTR = logSTR & Cells(69, "B").Value & " , " 
    logSTR = logSTR & Cells(70, "B").Value & " , " 
    logSTR = logSTR & Cells(71, "B").Value & " , " 
    logSTR = logSTR & Cells(72, "B").Value & " , " 
    logSTR = logSTR & Cells(73, "B").Value & " , "

    Open "T:\Typing\Client Information\Test1.csv" For Append As
    #My_filenumber
        Print #My_filenumber, logSTR Close #My_filenumber

End Sub

【问题讨论】:

    标签: excel vba scripting


    【解决方案1】:

    如果 B2 是 XXX,则生成 XXX.CSV(带有循环!)

    Sub WriteCSVFile()
        Dim My_filenumber As Integer
        Dim i As Long
        Dim logSTR As String, fileName as String
    
        My_filenumber = FreeFile
    
        For i = 2 To 73
            logSTR = logSTR & Cells(i, "B").Value & " , "
        Next
    
        fileName = "T:\Typing\Client Information\" & Range("B2").Value & ".csv"
    
        Open fileName For Append As #My_filenumber
            Print #My_filenumber, logSTR
        Close #My_filenumber
    End Sub
    

    【讨论】:

    • 非常感谢 Alex K。第一次工作。
    【解决方案2】:

    据我了解,您现在只需将文件另存为“B2.csv”

    也许这个问题它回答了你的问题,看看:

    Saving excel worksheet to CSV with file name from a cell using a macro

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 2014-12-08
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-26
      相关资源
      最近更新 更多