VBA - 如果相邻单元格不为空则填充单元格

VBA - 如果相邻单元格不为空则填充单元格

我已经创建了一个宏,可以为我打开和编辑 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。我不太明白你的第二部分。

相关内容