繁体   English   中英

(VBA 2010)另存为文件名

[英](VBA 2010) SaveAs Filename

我需要帮助来弄清楚如何用vba在扫描仪填充三个单元格后在桌面上的文件夹中创建和保存文件。 想象一下杂货店扫描仪,它可以扫描产品。 从条形码中提取了三条信息,然后将其放置在三个单独的单元格中,例如A1 B1 C1,我如何获得VBA才能看到此信息将其复制并粘贴到保存的文件中? 这是我到目前为止所拥有的:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Range("A1").Value = "" And Not Range("B1").Value = "" And Not Range("C1").Value = "" Then

        Dim workbookName As String
        workbookName = "DiePunch.csv"
        ActiveCell.Range("A1:C1").Select
        Selection.Copy
        Workbooks.Add
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = Fa
        ActiveWorkbook.SaveAs Filename:="u:\CSV\Diepunch.csv", FileFormat:=xlCSV, CreateBackup:=False
        ActiveWorkbook.Save
        ActiveWindow.Close (SaveChange = False)
    End If

End Sub

如果您可以发布自己的代码,我可能会更有帮助。

使用单元格(行,列)获取单元格中的值。 我记得在VBA中创建文件是通过Freefile和Open,Print#,Close语法完成的。

(这几乎是可用的代码,但不是100%)

Dim intHandle as Integer
intHandle = FreeFile()
Open "Filename.txt" for output as intHandle
Print #intHandle, Excel.Cells(Row,Column).Value
Close intHandle

这样就可以了

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Range("A1").Value = "" And Not Range("B1").Value = "" And Not Range("C1").Value = "" Then

    Dim workbookName As String
    workbookName = "whatever.xls"

    ThisWorkbook.SaveAs "C:\" & workbookName

End If

End Sub

您需要确定如何命名文件。 如果您只是选择workbookName为任意值,那么文件将以文件名的增量保存,例如

workbookName(1).xls
workbookName(2).xls

等等..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM