【发布时间】:2017-05-31 04:51:39
【问题描述】:
我需要一个 VBA 来更新特定“excel 文件”中的“excel 文件的名称”。文件夹中有 12 个文件。此文件夹的路径是 D:\Amit。这 12 个文件的名称是“Cash Report as on 11-05-2017 0000Hrs”,从午夜开始(这就是为什么 0000Hrs),它增加了 2 小时,使其成为 0200Hrs、0400Hrs 等。我们每 2 小时后每天准备这些文件。有时确实会发生我们在 3 小时后运行文件,使其成为 0500Hrs 而不是 0200Hrs 之后的 0400Hrs。我需要的是一个 VBA 文件,它打开所有这 12 个文件,并且在每个文件的最后一行的 A 列中,它提到了该特定文件的名称。 例如。它应该打开所有 12 个文件,然后在 2017 年 5 月 11 日的第一个名为 Cash Report 的文件中,在该文件 A 列的最后一行 - 它应该提到这个特定文件的名称。
因此,如果 VBA 打开文件“Cash Report as on 11-05-2017 0400Hrs”,那么在单元格中的文本或数据之后的 A 列的最后一个单元格中,使用偏移量非常下面的空白单元格应该有此文件的名称为“2017 年 11 月 5 日 0000 小时的现金报告”。同样,对于打开每个单独文件并更新 A 列最后一行内的相应文件名的所有文件,都需要这样的东西。
我尝试了一些代码,但它仍然是零碎的。
Dim Source As String
Dim StrFile As String
'do not forget the last backslash in the source directory.
Source = "C:\Users\Admin\Desktop\VBA\"
StrFile = Dir(Source)
Do While Len(StrFile) > 0
Workbooks.Open Filename:=Source & StrFile
StrFile = Dir()
Loop
fldr = Activeworkbook.Path
Dt = Application.InputBox("Enter Date as 'dd-mm-yyyy' ", format(Now," dd-mm-yyyy"
Workbooks.open Filename:= fldr & "\Cash Report as on" & 0400 & "Hrs.xlsx"
Range("A1").End(xlDown).Select
Offset(1).Select
【问题讨论】: