0
我在下面添加了一段代码。我正在导入每2小时生成一个文件。由于它开始的时间,我需要减去一小时,并将其添加到文件名来导入文件。例如:我想在VBA中减去一小时
文件名_ “毫米”(月)“DD”(天) “HH”(小时).txt文件
小时需要被包括前导0,以及。
Dim hour As String
Dim day As String
Dim month As String
Dim project As String
Set ws = Worksheets("Master")
Set ws1 = Worksheets("MQL_RAW")
Set ws2 = Worksheets("BOM")
file_name = Sheets("Master").Range("F" & rep1).Value
file_name2 = Sheets("Master").Range("G" & rep1).Value
output_sheet = Sheets("Master").Range("L" & rep1).Value
row_number = Sheets("Master").Range("M" & rep1).Value
hour = Format(Time, "Hh") - Time(1, 0, 0)
day = Format(Date, "Dd")
month = Format(Date, "Mm")
project = Sheets("Master").Range("B2").Value
LastRow = Cells(ws1.Rows.Count, 10).End(xlUp).Row
ws1.Activate
Columns("A:A").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlToLeft
ws.Activate
aa = file_name2 & Format(Date, "yyyymmdd") & "_" & Format(Time, "Hh")
With Sheets(output_sheet).QueryTables.Add(Connection:="TEXT;" + file_name + "\" + month + "\" + day + "\" + file_name2 & Format(Date, "yyyymmdd") & "_" & hour & ".txt", Destination:=Sheets(output_sheet).Range("$A$" + row_number))
'.Name = file_name & Format(Date, "yyyymmdd") & "_" & Format(Time, "Hh")
.FieldNames = True
.RowNumbers = False
我可以只用'reportStart,“HH”'?我也在vba可以链接到的单元格中获得正确的小时,但是当VBA查看单元格内容时,无论我做什么,我都没有使用这个前导0的原因被忽略。所以如果可以对其进行硬编码以便在VBA中包含前导0,那将更容易。我已经改变了单元格的格式来显示前导0,但是这在VBA –
** 1中没有什么区别。**是** 2。**您需要在VBA中格式化值,而不是在工作表上 - 如果小时在A1,那么你可以使用'格式(范围(“A1”),值,“00”)' –
首先感谢你的快速反应。 (“I”&rep1)。值 格式(范围(“I10”))。值,“我已经尝试了该代码并将其加入到代码中,并且出现”hour = Sheets 00“'这是代码,我得到以下错误**所需的对象**。对不起,如果我是一个noob –