Здравствуйте, люди умные,люди добрые...
Помогите, пожалуйста, написать макрос...
Задача :
Есть документ, в нем, к примеру, в 13-й колонке прописаны ссылки на другие документы Excel.
Необходимо :
1 )Последовательно загрузить информацию,находящуюся в прописанных ссылках.
2 )там, где при загрузке файл не обнаружен, остаются ячейки с надписью "##ССЫЛКА" - их нужно ОЧИСТИТЬ и поменять в них цвет на СЕРЫЙ ( по моему, это 15 цвет )
3 )все формулы уничтожить, файл "инактивировать" (это делается режимом копирования себе на голову: Выделить все, Специальная вставка, Значения)
Заранее благодарен.
т.е. в колонке прописаны ссылки на документы,нужно чтобы данные обновлялись по очередно, начиная с 1-й ячейки столбца,в котором прописаны ссылки и дальше вниз. Спасибо.
1 )Последовательно загрузить информацию,находящуюся в прописанных ссылках.
Чтобы, как ты выражаешься, последовательно загрузить информацию - нужно поочередно заново прописать в этих ячеках ссылки на то, что тебе нужно.
2 )там, где при загрузке файл не обнаружен, остаются ячейки с надписью "##ССЫЛКА" - их нужно ОЧИСТИТЬ и поменять в них цвет на СЕРЫЙ ( по моему, это 15 цвет )
А это - просто пробежать по столбцу, проверяя дл каждой ячейки ее значение.
По первому пункту я так понимаю должен быть примерно следующий код :
Range( "" ).Select "Выбираем нужный столбец)
ActiveCell.Offset(0, 0).Activate "Делаем активной 1-ю ячейку нужного столбца"
ActiveCell.FormulaR1C1 = "" указываем директорию,из которой нужно копировать
Set fs = Application.FileSearch
With fs
.LookIn = "C:\Documents and Settings\"
.Filename = "Книга11"
End With
Range("K4".FormulaR1C1 = Application.FileSearch.FoundFiles.Count
If Range("K4".FormulaR1C1 = "0" Then
Range("k4".FormulaR1C1 = ""
With Selection.Interior
.ColorIndex = 48
.Pattern = xlSolid
End With
Else
Range("k4".Value = _
"='C:\Documents and Settings\[Книга11.xls]Лист1'!$B$7"
End If
End Sub
Второе отдельно:
Range("K5".Select
If ActiveCell.Text = "#ÑÑÛËÊÀ!" Then
ActiveCell.Value2 = ""
With Selection.Interior
.ColorIndex = 48
.Pattern = xlSolid
End With
End If
Range("K6".Select
3 )все формулы уничтожить
Вроде этого:
Dim s As String
s = Range("k1".Text
Range("k1".Value = ""
Range("k1".Value = s
Range("K5".Select
If ActiveCell.Text = "#ÑÑÛËÊÀ!" Then
ActiveCell.Value2 = ""
With Selection.Interior
.ColorIndex = 48
.Pattern = xlSolid
End With
End If
Range("K6".Select
Здесь
If ActiveCell.Text = "#ÑÑÛËÊÀ!" Then
Александр, всё бы хорошо,но есть одно но:
в листе 4 колонки,150 строк.Может быть как-нибудь можно проверять ячейки на содержание (#Ссылка!) в режиме цикла?
Пробовал по всякому,не получается...
P.S. воспользовался 2-м пунктом отдельно, пробовал указать Range("A1:F150.Select, ячейки всего диапазона закрашиваются, а содержимое очищается только в 1-й.