在 VBA 中使用文件对话框

马蒂亚斯

我通常只是谷歌并最终找到答案,但这次我真的被困住了。我不太熟悉 VBA 及其工作原理,但了解了基本思想。

我想要做的是从许多 .lvm 文件中收集数据并将其放入图表中。.lvm 文件是带有制表符分隔列的文本文件,它们包含文本和十进制数字。

我想从文件对话框中选择多个文件并从文件中复制一列并将其放入图表中。我可以复制该列,但是当我将值复制为文本而不是数字时。当我通常在 Excel 中打开文件时,值的格式为“常规”,我可以从中制作图表。但是当文件被 filedialog 打开时,格式会发生一些事情。我的代码看起来像这样(到目前为止):

Private Sub CommandButton1_Click()

Dim fd As FileDialog
Dim FileChosen As Variant
Dim FileName As String
Dim i As Integer
Set fd = Application.FileDialog(msoFileDialogFilePicker)
'use the standard title and filters, but change the
'initial folder
fd.InitialView = msoFileDialogViewList
'allow multiple file selection
fd.AllowMultiSelect = True

FileChosen = fd.Show

If FileChosen = -1 Then
'open each of the files chosen

    For i = 1 To fd.SelectedItems.Count
        Workbooks.Open fd.SelectedItems(i)      

        Sheets(1).Range("B23:B" & Range("B23").End(xlDown).Row).Copy
        Application.DisplayAlerts = False
        ActiveWorkbook.Close
        ThisWorkbook.Sheets("Sheet2").Activate
        Sheets("Sheet2").Select
        Sheets("Sheet2").Cells(1, i * 1).Select

        ActiveSheet.Paste

        Application.DisplayAlerts = True
    Next i

End If

End Sub

我的来源看起来像这样: "Lots of text until row 23" 0,1 0,2 0,4 0,5 0,7 0,8 0,9 0,2 0,5 0,2 0,1 0,1 0,1 0,2 0,4 0,5 0,7 0,8 0,9 0,2 0,5 0,2 0,1 0,1 0,1 0,2 0,4 0,5 0,7 0,8 0,9 0,2 0,5 0,2 0,1 0,1 0,1 0,2 0,4 0,5 0,7 0,8

原始文件中有更多行,小数点分隔符后有五位数字

马蒂亚斯

我发现自己出了什么问题!问题实际上是由workbooks.open. 不知何故,它没有响应分隔符,因此以错误的方式导入了源文件。我通过使用workbooks.OpenText解决它

Workbooks.OpenText FileName:= _
fd.SelectedItems(i), DataType:=xlDelimited, Local:=True
Set wb_source = ActiveWorkbook'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章