我需要一个VBA来更新excel文件的名称"在那个特定的" excel文件"。文件夹中有12个文件。该文件夹的路径是D:\ Amit。这12个文件的名称是"现金报告,如11-05-2017 0000Hrs"从午夜开始(这就是0000Hrs的原因)并且它增加了2个小时,使其成为0200Hrs,0400Hrs等。我们每2小时后每天准备这些文件。有时我们会在3小时之后运行该文件,而不是在0200Hrs之后的0500Hrs而不是0400Hrs。我需要的是一个VBA文件,它打开所有这12个文件,在每个相应文件的最后一行的A列中,它提到了该特定文件的名称。 例如。它应该打开所有12个文件,然后在第一个名为Cash Report的文件中,如11-05-2017,在该文件的A列的最后一行 - 它应该提到这个特定文件的名称。
因此,如果VBA在11-05-2017 0400Hrs"然后在单元格A的最后一个单元格中,紧接在单元格中的文本或数据之后,使用偏移量,下面的空白单元格应该具有此文件的名称为"现金报告为11-05-2017 0000Hrs&#34 ;。同样,对于打开每个单独文件的所有文件以及更新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
答案 0 :(得分:0)
试试这个
Sub t()
Dim Source As String
Dim StrFile As String
Dim wb As Workbook
'do not forget last backslash in source directory.
Source = "C:\Users\Admin\Desktop\VBA\"
StrFile = Dir(Source)
Do While Len(StrFile) > 0
Set wb = Workbooks.Open(Source & StrFile)
wb.ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = wb.Name
StrFile = Dir()
wb.Close (True)
Loop
End Sub
答案 1 :(得分:0)
尝试这样的事情。
假设:
column.groupby(column.isnull().cumsum()).last().iloc[:-1]
0 3.0
1 4.0
dtype: float64
更改行Sheets(1)
Sheets("YourName")
函数(thx @Darren Bartrup-Cook)<强>代码:强>
COUNTA