1

Я создал макрос, который открывает и редактирует книги Excel для меня.

Во-первых, он добавляет новый столбец A, а затем меняет заголовок для A1, B1, C1, D1.

После этого я хочу создать некую формулу / цикл в VBA, который добавляет фрагмент текста (31/12/2014) в этом случае к каждой ячейке в A, но только если в соседней ячейке к тексту есть текст. правый RC [1].

У кого-нибудь есть идея относительно того, как я должен отредактировать указанный код моего VBA, чтобы осуществить это?

Не так важно, но я бы хотел, чтобы эта дата была изменена в моем листе Excel. Есть ли простой способ сделать это, как когда я сделал это с помощью Range("E7").Значение (и отредактировано 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 ответ1

0

Это довольно просто, используйте 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 . Я не совсем понимаю вашу вторую часть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .