将文本文件中的数据导入主文件(更改目标目录) - Excel

时间:2017-02-21 01:57:18

标签: excel vba excel-vba targeting

我知道这篇文章看起来与许多其他帖子看起来非常相似。我已经学习了C ++和C#,这两者都很好地完成了一些小工作,而我只是不能很好地理解VBA以使这个宏发生。

我只有不到100个需要导入主文件的文件。我无法修改源文件,但主文件只需要选择列。

这个宏工作得非常完美我只需要能够为正在使用的宏的每个实例选择新的文件路径。我发现很多帖子似乎都是这样的:

https://social.msdn.microsoft.com/Forums/office/en-US/231cbfc5-95ad-4673-a20c-f87355c6bc5e/prompt-user-for-file-name-to-import-as-fixed-width-text-file?forum=exceldev

首先将文件路径转换为变量,然后将其传递给ActiveSheet.QueryTables.Add命令。我可能只是遗漏了一些东西,但在我不理解的所有例子之间有很多变数。看起来vba的msdn页面远不如C#的那些直观。无论是那个还是我根本无法理解他们没有采取我需要的babysteps。

使用宏工具我制作了下面的大部分代码。大约一个小时的工作让我可以用活性细胞替换硬编码的细胞。

Sub InputDataFromTextFile()
'
' InputDataFromTextFile Macro
'
' Keyboard Shortcut: Ctrl+t
'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;E:\Dropbox\College 2016-2017\Research\Buffered Solutions\pH10\With PDADMAC\30.CSV" _
        , Destination:=ActiveCell)
        .Name = "30"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(9, 1, 9)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

我将非常感谢能给予的任何和所有帮助。非常感谢你们所有的时间。

0 个答案:

没有答案