Консультация № 180594
07.11.2010, 01:37
0.00 руб.
0 3 1
Нужно написать макрос в Excel. На каждом листе имеется заполненный столбец А, некоторые строки которого пустые. Нужно на всех листах ввести в каждую пустую строку столбца А первое слово названия текущего листа (названия листов состоят из 2 слов, разделённых пробелом). файл выслать не могу. хороший отзыв гарантирую, в случае, если программа будет работать правильно.

Обсуждение

давно
Академик
320937
2216
07.11.2010, 11:43
общий
хороший отзыв гарантирую
Раньше писали "Оплату гарантирую"
Неизвестный
07.11.2010, 12:35
общий
это ответ
Здравствуйте, Игорь!
Код:
Option Base 0

Sub InsName()
Dim ws As Worksheet
Dim wName() As String
Dim CCell As Range
Dim CCount As Integer

For Each ws In ThisWorkbook.Worksheets ' перебор всех листов в книге
wName = Split(ws.name, " ") ' разбивка имени листа на слова
CCount = ws.UsedRange.Rows.Count ' количество строк на листе
Set CCell = ws.Cells(1, 1) ' установка указателя на первую строку
Do While CCell.Row <= CCount ' повтор пока не достигнет конца
If CCell.Value = "" Then CCell.Value = wName(0) ' если ячейка пустая - вставка первого слова из названия листа
Set CCell = CCell.Offset(1, 0) ' сдвиг указателя вниз
Loop
Next ws
End Sub
5
давно
Мастер-Эксперт
680
2811
07.11.2010, 13:26
общий
А почему только VBA? А просто формулы уже не котируются?
=ПСТР(ЯЧЕЙКА("filename";A1);НАЙТИ("]";ЯЧЕЙКА("filename";A1))+1;32)
или так:
=ПРАВСИМВ(ЯЧЕЙКА("имяфайла";A1);ДЛСТР(ЯЧЕЙКА("имяфайла";A1))-НАЙТИ("]";ЯЧЕЙКА("имяфайла";A1);1))

и еще впереди вставить ЕСЛИ, для проверки пустоты ячейки (автор не написал, что там может быть)
Форма ответа