Похожие вопросы

Кто-нибудь знает, как редактировать макрос, созданный в mobaxterm?
Развертывание только выбранных строк в Excel с помощью макросов VBA
макрос VBA - найти первый пустой столбец из определенного диапазона строк
Как заполнить большой ряд (более 10 000 строк) в Microsoft Excel без перетаскивания или выбора ячеек?
сообщение "макросы отключены" в Word 2007, но нет макросов
Использование динамических ссылок на внешние книги в Excel
Выполнение макроса на текущем листе и на всех листах после текущего
Как использовать условное форматирование или макрос для выделения повторяющихся (но не исходных) ячеек курсивом?
Что такое хороший Macro recorder для Windows? [закрытый]
Код VBA для фильтрации столбца с помощью поля ввода
Как применить этот макрос ко всем страницам в файле excel
Используйте клавиши для кнопок мыши на linux. Альтернатива AHK?
Редактирование макроса Razer Synapse в текстовом редакторе
Запуск макроса одним щелчком мыши по определенной ячейке
Как ускорить работу макроса в Excel 2003?

VBA - заполнение ячейки, если соседняя ячейка не пуста

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

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

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

кто-нибудь есть идея, как я должен изменить указанный код VBA для донести это до конца?

Не так важно, но я хотел бы, чтобы эта дата была изменена через мой лист excel. Есть ли простой способ сделать это, как когда я это сделал, используя диапазон("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:SHAREDStyle ResearchPortfolios - 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
5
задан Raystafarian
источник

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. Я не совсем понимаю вторую часть.

0
отвечен Raystafarian 2015-02-05 12:30:31
источник