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

Вы можете изменить связанные диаграммы для встроенных диаграмм в PowerPoint 2010? Или использовать относительные ссылки на файлы Excel?
Найдите и замените одной точкой несколько рядов из двух точек, прикрепленных к концу слова
Копирование и вставка с помощью макросов в Excel 2007
Как запустить макрос в экземпляре excel " 2 "из экземпляра excel" 1"
как автоматически запустить макрос Outlook?
Как избежать окна сообщения буфера обмена при копировании больших объемов данных в Excel?
Макросы Excel цикл по строкам
Объединение строк в Excel
Как найти переменные документа в MS Word без использования макросов
Формат таблицы MS Word через VBA / макросы: проблема с ячейками слияния специально
Действия записи Gimp
Ошибка выполнения VBA 1004: метод "OpenText" объекта "книги" не удалось
Excel, соедините 2 столбца, затем найдите все строки, где столбец J находится в двух разных столбцах D
расширенный поиск и замена для Excel или Notepad++
Можно ли остановить макрос blackwidow во время его выполнения?

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
источник