简短的macros观问题

我创build了一个为我打开和编辑工作簿的macros。 它添加在列(A)中,然后格式化单元格A1,B1,C1和D1的标题。

在此之后,我想在每个A单元格中添加相同的date,条件是列B-RC [1]中的相应单元格中是否有文本。

是否有人知道Wkb.Worksheets("Sheet1").Range("A1:A250") = "31/12/2014"Wkb.Worksheets("Sheet1").Range("A1:A250") = "31/12/2014" )应该是或者我完全错了吗?

也许我需要一个循环?

 Sub test() Dim MyPath As String Dim MyFile As String Dim Wkb As Workbook Dim Cnt As Long Application.ScreenUpdating = False 'MyPath = "G:\SHARED\Style Research\Portfolios - Macro Test" MyPath = Range("D6").Value If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" MyFile = Dir(MyPath & "*.xls") Cnt = 0 Do While Len(MyFile) > 0 Cnt = Cnt + 1 Set Wkb = Workbooks.Open(MyPath & MyFile) Wkb.Worksheets("Sheet1").Range("A1").EntireColumn.Insert Wkb.Worksheets("Sheet1").Range("A1:A250") = "31/12/2014" 'Wkb.Worksheets("Sheet1").Range("A1").EntireColumn.NumberFormat = "DD/MM/YYYY" Wkb.Worksheets("Sheet1").Range("A1") = "Date" Wkb.Worksheets("Sheet1").Range("B1") = "Identifier" Wkb.Worksheets("Sheet1").Range("C1") = "Name" Wkb.Worksheets("Sheet1").Range("D1") = "%" Wkb.Close savechanges:=True MyFile = Dir Loop If Cnt > 0 Then MsgBox "Finito", vbExclamation Else MsgBox "Error!", vbExclamation End If Application.ScreenUpdating = True End Sub 

一个循环会为你做。

更换

  Wkb.Worksheets("Sheet1").Range("A1:A250") = "31/12/2014" 

 Dim i as Integer For i = 1 To 250 Dim r As Range Set r = Wkb.Worksheets("Sheet1").Range("B" & i, "RC" & i) For Each Cell In r.Cells If Cell.Value <> "" Then Wkb.Worksheets("Sheet1").Range("A" & i).Value = "31/12/2014" Exit For End If Next Next 

下面的代码将基本上从1循环到250.我是计数器。
对于每个增量,代码将检查您所需的B-RC[i]范围内的每个单元格( For Each Cell )。

如果单元格值不为空,则将继续添加date到相应的Range("A"&i) ,并停止查找所需范围内的值,使用Exit For并移至下一个i