首页 > 解决方案 > 使用条形码扫描保存为文件名

问题描述

我想要得到的是一个弹出窗口,上面写着扫描作业编号,在扫描编号时消失,然后另一个弹出窗口显示经过测试的扫描材料也消失了

然后两条数据都成为文件名,两条数据之间有一个下划线

EG JN1106846_F114-CHT-00343

另一个弹出窗口显示数据以供用户确认它是正确的。如果是,则保存到预设路径,如果没有循环回到开头

我几乎让它工作了,我正在努力解决的问题是

变量文件名并在其中获取下划线(我想也许从消息框中复制文本可以做到,但我似乎做不到)

输入正确数量的字符后接受扫描数据

并处理多个同名文件。我想给它们加时间戳,但冒号阻止它保存

有什么建议么??

子 tt()

将 inputData 调暗为字符串

Application.DisplayAlerts = False

inputData = InputBox("Scan Job Number:", "Scan it you slag!")
If inputData <> "" Then
  scan = inputData
End If

inputData = InputBox("Scan part number:", "Scan it you slag!")
If inputData <> "" Then
partnum = inputData
End If

Ret_Type = MsgBox(scan & "_" & partnum & "_" & Now(), vbYesNo, "Filename Correct?")




Select Case Ret_Type

Case 6
  ActiveWorkbook.SaveAs ("M:\Quality\Public\ManufacturingHistory\RoughnessTestingResults\VarableFilename " & Format(Now(), "DD-MMM-YY") & ".xlsx")



Case 7
Call tt

End Select

结束子

标签: arrays

解决方案


首先,您应该在创建文件后立即将文件名存储在变量中,如下所示:

Dim filename As String = scan & "_" & partnum & "_" & Format(Now(), "DD-MMM-YY")
Ret_Type = MsgBox(filename, vbYesNo, "Filename Correct?")

因此,您将在Datetime捕获后立即存储并保留它,否则如果用户在您的 MsgBox 中单击 Ok 之前需要 1 小时,并且您Now()在保存期间再次设置 a,则将采用最新日期而不是您的第一个日期一小时前生成。

此外,从不建议以编程方式在文件名中放置空格字符。您应该用下划线替换它们。试试这行代码来保存你的 xlsx 文件:

ActiveWorkbook.SaveAs("M:\Quality\Public\ManufacturingHistory\RoughnessTestingResults\" & filename & ".xlsx")

推荐阅读