美好的一天
我有几个工作簿(> 100)我需要以相同的方式编辑,以便它们可以在不同的程序中使用 - 即从某个点(从头到尾)删除空白列并移动文本在左边,然后更改日期格式 - 我已经能够成功完成
但是,某些工作簿不包含需要编辑的日期,这会导致错误。
例如,某些工作簿将如下所示:
A B C D E F
------------------------------------------------------------
1 info | | | | |
2 info | | | | |
3 info | | | | |
4 First | | | | |
5 | Data 1 | | Dates | | Data 2
6 | | | | |
7 | | | | |
8 | | | | |
9 | Number dts| | 0 | |
10 Last | | |
虽然其他人看起来像这样:
Option Explicit
Sub FixData()
Dim sPath As String
Dim Wb As Workbook, sFile As String
sPath = "C\:temp"
sFile = Dir(sPath & "*.csv")
Application.ScreenUpdating = False
Do While sFile <> ""
Set Wb = Workbooks.Open(sPath & sFile)
Cells.Find(What:="Start", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Range("A1:A12").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlToLeft
Selection.NumberFormat = "General"
ActiveCell.Offset(0, -1).Range("A1").Select
Cells.Find(What:="Dates", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Range("A1:A2").Select
Selection.NumberFormat = "General"
'a condition needs to be added here to continue or end
Selection.NumberFormat = "yyyy-mm-dd"
ActiveCell.Columns("A:A").EntireColumn.AutoFit
Wb.Close SaveChanges:=True
sFile = Dir
Loop
Application.ScreenUpdating = True
End Sub
但是现在我想添加一个条件,其中日期数(第一个例子中的3个和第二个中的0个)用作继续日期格式的条件,或者结束子日期。所以如果0,结束,否则继续
我猜我需要进行搜索(对于数字dts),值始终是右边的第一个(ctrl-right)。但是 - 我不知道如何定义这个范围然后在一个条件下使用它?到目前为止,我需要编辑的代码如下:
{{1}}
任何帮助都将受到极大的赞赏!!