在文件路径中指定当前月份,防止每月更改宏

时间:2017-03-22 16:24:54

标签: excel-vba vba excel

我正在尝试在当前月份文件夹中的文件上运行以下宏。我有一个宏工作,它在共享的驱动器位置找到当前月份的文件夹,并成功调用此宏。但是,下面的宏指定了March,但我正在寻找一种方法来指定"当前月份"所以我不必每个月都更换宏。 (此宏只将.csv转换为.xlsx,但现在仅用于测试目的。)

Sub Reject_Review()



ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;G:\Rejects\2017\March\Test_3.csv" _
    , Destination:=Range("$A$1"))
    .Name = "Test"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 437
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileOtherDelimiter = "|"
    .TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
    , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
    1, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False


End With

End Sub    

2 个答案:

答案 0 :(得分:1)

使用VBA Format关键字

  

返回包含格式化表达式的Variant(String)   根据格式表达式中包含的说明..

     

格式(表达式[,格式[,firstdayofweek [,firstweekofyear]]])
  https://msdn.microsoft.com/en-us/library/office/gg251755.aspx

不要忘记你的一年也需要更新。

"TEXT;G:\Rejects\" & Year(Date) & "\" & Format(Date, "mmmm") & "\Test_3.csv"

答案 1 :(得分:0)

此功能适用于VBA:

Function GetMonth() As String

    GetMonth = Application.WorksheetFunction.Text(Date, "mmmm")
End Function