Страницы: 1
RSS
Почему макрос обрабатывает не указанный ему столбец?
 
Здравствуйте, уважаемые планетяне!

Помогите пожалуйста неопытному пользователю найти ошибку в макросе.
В динамическом именованном диапазоне после его заполнения нужно заменить в трёх столбцах E, I и M формулы со ссылками на другую книгу на значения. При этом происходит замена формул на значения и в соседнем с Е столбце D.  :(  
Код
Sub Макрос7()   
 Range("$E:$E")  .Select   
 Selection.Copy   
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _   
 :=False, Transpose:=False   
 Range("$I:$I")  .Select   
 Selection.Copy   
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _   
 :=False, Transpose:=False   
 Range("$M:$M")  .Select   
 Selection.Copy   
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _   
 :=False, Transpose:=False   
 Range("A1")  .Select   
 Selection.ClearContents   
End Sub   

Заранее спасибо!
Изменено: Дарья - 29.12.2018 01:58:37
 
Скорее всего где-то внутри столбца Е есть объединенная ячейка, которая при выделении столбца целиком "заставляет" Excel выделять все столбцы, входящие в объединенную ячейку.
Полагаю, если макрос сократить и чуть оптимизировать - ошибки не будет:
Код
Sub Макрос7()
 Intersect(Range("$E:$E"), ActiveSheet.UsedRange).Value = Intersect(Range("$E:$E"), ActiveSheet.UsedRange).Value
 Intersect(Range("$I:$I"), ActiveSheet.UsedRange).Value = Intersect(Range("$I:$I"), ActiveSheet.UsedRange).Value
 Intersect(Range("$M:$M"), ActiveSheet.UsedRange).Value = Intersect(Range("$M:$M"), ActiveSheet.UsedRange).Value
 Range("A1").Value = Empty
End Sub

при копировании кода к себе не забудьте удалить пробел перед Value - это глюк форума, пока не вылеченный.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist Спасибо огромное!! Точно, спряталась там объединённая ячейка, а я голову сломала.  :D  

А вот оптимизированный макрос пока не встаёт, не могу победить синтаксис с пробелами, но буду сейчас стараться!  :)
Изменено: Дарья - 22.01.2013 22:52:41
 
Цитата
Дарья пишет:
не могу победить синтаксис с пробелами
Перепишите эту строку целиком.
 
Юрий М, и Вам спасибо большое! Переписала строки, и всё получилось!  :)
И намного быстрее работает оптимизированный макрос!  :)
Страницы: 1
Наверх