在扫描仪填写了三个单元格之后,我需要帮助来弄清楚如何让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
答案 0 :(得分:0)
如果您可以发布您的代码,我会更有帮助。
使用单元格(行,列)获取单元格中的值。我记得在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
答案 1 :(得分:0)
这将完成工作
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
等。