我已经创建了一个宏,可以为我打开和编辑 Excel 工作簿。
首先,它添加了一个新的A列,然后将其标题更改为A1,B1,C1,D1。
在此之后,我想在 VBA 中创建某种公式/循环,在本例中将一段文本(31/12/2014)添加到 A 中的每个单元格中,但前提是右侧 RC[1] 相邻单元格中有文本。
有人知道我应该如何编辑我的 VBA 指示的代码来实现这一点吗?
不是那么重要,但我希望通过我的 excel 表更改该日期。有没有一种简单的方法可以做到这一点,就像我使用 Range("E7").Value(并编辑了 E7)所做的那样。我的所有其他工作簿中的格式都不正确。
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
'this is the part I'm referring to
Wkb.Worksheets("Sheet1").Range("A1:A250") = "31/12/2014"
'Range("D7").Value
'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 "Completed...", vbExclamation
Else
MsgBox "No files were found!", vbExclamation
End If
Application.ScreenUpdating = True
End Sub
答案1
这很简单,使用这样的条件for loop
-if
Sub test()
For Each c In Range("A:A")
If c <> 0 And c.Offset(, 1) <> 0 Then
c.Value = 1
End If
Next
End Sub
您可以更改范围以适合您的数据,或者您可以尝试获取usedrange
。我不太明白你的第二部分。