Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Значение ...Select.Selection... в VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Значение ...Select.Selection... в VBA (Некие тонкости в коде макроса)
Значение ...Select.Selection... в VBA
light26 Дата: Понедельник, 27.08.2012, 22:25 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет.
На одной из встреч экселистов разбирался записанный макрорекордером код. Так вот, макрорекордер записывает пошагово все действия. То-есть, если из ячейки А1 нужно удалить содержимое, то мы сначала выделим эту ячейку, затем нажмем Delete.
В этом случае макрос запишет:
[vba]
Code
Range("А1").Select
      Selection.ClearContents
[/vba]
Но достаточно записать команду в виде
[vba]
Code
Range("I4").ClearContents
[/vba]
и получим тот же результат после выполнения макроса.
И тут я наткнулся на такой код (приведу только его часть)
[vba]
Code
Case "да"
                    r.Previous.Select
                    Selection.Cut
                    Sheets("Да").Activate
                    Range("A1000").Select
                    Selection.End(xlUp).Offset(1).Select
                    Selection.Insert Shift:=xlDown
                    Sheets("Данные").Activate
                    r.Select
                    Selection.ClearContents
[/vba]
В принципе, его можно записать как
[vba]
Code
Case "да"
                    r.Previous.Cut
                    Sheets("Да").Activate
                    Range("A1000").End(xlUp).Offset(1).Insert Shift:=xlDown
                    Sheets("Данные").Activate
                    r.ClearContents
[/vba]
Или я чавой-то не понимаю?


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Понедельник, 27.08.2012, 22:30
 
Ответить
СообщениеВсем привет.
На одной из встреч экселистов разбирался записанный макрорекордером код. Так вот, макрорекордер записывает пошагово все действия. То-есть, если из ячейки А1 нужно удалить содержимое, то мы сначала выделим эту ячейку, затем нажмем Delete.
В этом случае макрос запишет:
[vba]
Code
Range("А1").Select
      Selection.ClearContents
[/vba]
Но достаточно записать команду в виде
[vba]
Code
Range("I4").ClearContents
[/vba]
и получим тот же результат после выполнения макроса.
И тут я наткнулся на такой код (приведу только его часть)
[vba]
Code
Case "да"
                    r.Previous.Select
                    Selection.Cut
                    Sheets("Да").Activate
                    Range("A1000").Select
                    Selection.End(xlUp).Offset(1).Select
                    Selection.Insert Shift:=xlDown
                    Sheets("Данные").Activate
                    r.Select
                    Selection.ClearContents
[/vba]
В принципе, его можно записать как
[vba]
Code
Case "да"
                    r.Previous.Cut
                    Sheets("Да").Activate
                    Range("A1000").End(xlUp).Offset(1).Insert Shift:=xlDown
                    Sheets("Данные").Activate
                    r.ClearContents
[/vba]
Или я чавой-то не понимаю?

Автор - light26
Дата добавления - 27.08.2012 в 22:25
_Boroda_ Дата: Понедельник, 27.08.2012, 22:39 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Даже так
[vba]
Code
r.Previous.Cut
Sheets("Да").Range("A1000").End(xlUp).Offset(1).Insert Shift:=xlDown
r.ClearContents
[/vba]
Тогда не будем прыгать по листам


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДаже так
[vba]
Code
r.Previous.Cut
Sheets("Да").Range("A1000").End(xlUp).Offset(1).Insert Shift:=xlDown
r.ClearContents
[/vba]
Тогда не будем прыгать по листам

Автор - _Boroda_
Дата добавления - 27.08.2012 в 22:39
light26 Дата: Понедельник, 27.08.2012, 22:42 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Саш, привет.
Но те "Selection", что я удалил, были удалены правильно?


Я не волшебник. Я только учусь
 
Ответить
СообщениеСаш, привет.
Но те "Selection", что я удалил, были удалены правильно?

Автор - light26
Дата добавления - 27.08.2012 в 22:42
light26 Дата: Понедельник, 27.08.2012, 22:46 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Погоди, Саш. Если брать твой вариант, то r.ClearContents выполнится на листе "Да", а нужно, чтобы выполнился на листе "Данные". Или я не прав?


Я не волшебник. Я только учусь
 
Ответить
СообщениеПогоди, Саш. Если брать твой вариант, то r.ClearContents выполнится на листе "Да", а нужно, чтобы выполнился на листе "Данные". Или я не прав?

Автор - light26
Дата добавления - 27.08.2012 в 22:46
RAN Дата: Понедельник, 27.08.2012, 22:50 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
не прав


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениене прав

Автор - RAN
Дата добавления - 27.08.2012 в 22:50
light26 Дата: Вторник, 28.08.2012, 00:00 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
не прав

Очень емкий аргумент...


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (RAN)
не прав

Очень емкий аргумент...

Автор - light26
Дата добавления - 28.08.2012 в 00:00
RAN Дата: Вторник, 28.08.2012, 07:44 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Какой аргумент? Ты о чем?
Вопрос по аналогии - наберу я полную обувь воды пройдя по луже?
Да, если буду в ботинках и нет - если буду в сапогах.
Ты же не говоришь, что такое "r", и с какого листа ты запускаешь макрос.
Set r = Sheets("Да").Range("A1") - привяжется к листу "Да"
Set r = Sheets("Данные").Range("A1") - привяжется к листу "Данные"
Set r = Range("A1") - привяжется к активному листу


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеКакой аргумент? Ты о чем?
Вопрос по аналогии - наберу я полную обувь воды пройдя по луже?
Да, если буду в ботинках и нет - если буду в сапогах.
Ты же не говоришь, что такое "r", и с какого листа ты запускаешь макрос.
Set r = Sheets("Да").Range("A1") - привяжется к листу "Да"
Set r = Sheets("Данные").Range("A1") - привяжется к листу "Данные"
Set r = Range("A1") - привяжется к активному листу

Автор - RAN
Дата добавления - 28.08.2012 в 07:44
light26 Дата: Вторник, 28.08.2012, 08:33 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
Какой аргумент? Ты о чем?

О том, что не понятно в чем не прав.
Вот полный код
[vba]
Code
Sub Перенос3()
    Dim r As Range
   For Each r In Range("B1:B23")
           r.Select
           Select Case r.Value
               Case "да"
                   r.Previous.Select
                   Selection.Cut
                   Sheets("Да").Activate
                   Range("A1000").Select
                   Selection.End(xlUp).Offset(1).Select
                   Selection.Insert Shift:=xlDown
                   Sheets("Данные").Activate
                   r.Select
                   Selection.ClearContents
               Case "нет"
                   r.Previous.Select
                   Selection.Cut
                   Sheets("Нет").Activate
                   Range("A1000").Select
                   Selection.End(xlUp).Offset(1).Select
                   Selection.Insert Shift:=xlDown
                   Sheets("Данные").Activate
                   r.Select
                   Selection.ClearContents
           End Select
   Next
   Range("A1:A23").SpecialCells(xlCellTypeBlanks).Select
   Selection.Delete Shift:=xlUp
   End Sub
[/vba]
Разве тут не надо выбрать лист "Данные" перед "Select.CearContents"?


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (RAN)
Какой аргумент? Ты о чем?

О том, что не понятно в чем не прав.
Вот полный код
[vba]
Code
Sub Перенос3()
    Dim r As Range
   For Each r In Range("B1:B23")
           r.Select
           Select Case r.Value
               Case "да"
                   r.Previous.Select
                   Selection.Cut
                   Sheets("Да").Activate
                   Range("A1000").Select
                   Selection.End(xlUp).Offset(1).Select
                   Selection.Insert Shift:=xlDown
                   Sheets("Данные").Activate
                   r.Select
                   Selection.ClearContents
               Case "нет"
                   r.Previous.Select
                   Selection.Cut
                   Sheets("Нет").Activate
                   Range("A1000").Select
                   Selection.End(xlUp).Offset(1).Select
                   Selection.Insert Shift:=xlDown
                   Sheets("Данные").Activate
                   r.Select
                   Selection.ClearContents
           End Select
   Next
   Range("A1:A23").SpecialCells(xlCellTypeBlanks).Select
   Selection.Delete Shift:=xlUp
   End Sub
[/vba]
Разве тут не надо выбрать лист "Данные" перед "Select.CearContents"?

Автор - light26
Дата добавления - 28.08.2012 в 08:33
LightZ Дата: Вторник, 28.08.2012, 08:55 | Сообщение № 9
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

Забудьте про Селекты и Активейты


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
СообщениеЗабудьте про Селекты и Активейты

Автор - LightZ
Дата добавления - 28.08.2012 в 08:55
Gustav Дата: Вторник, 28.08.2012, 09:57 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1138 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Quote (light26)
Разве тут не надо выбрать лист "Данные" перед "Select.CearContents"?

Вставьте перед и после Sheets("Данные").Activate оператор:

Debug.Print r.Parent.Name

и всё станет понятнее.

Range, однажды определенный в любом месте (при помощи Set или в цикле For Each), хранит своё окружение ("родителя" и других "предков") в момент определения (Worksheet, Workbook и даже Application, если идет кросс-работа с несколькими экземплярами Excel) до конца жизни. Если не было явного указания листа, о чем сказал RAN, то папа Range - ActiveSheet в момент определения.

Quote (LightZ)
Забудьте про Селекты и Активейты

Ну, совсем-то не надо, наверное, забывать. А то как же тогда, например, ActiveWindow.FreezePanes = True делать?


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 28.08.2012, 10:03
 
Ответить
Сообщение
Quote (light26)
Разве тут не надо выбрать лист "Данные" перед "Select.CearContents"?

Вставьте перед и после Sheets("Данные").Activate оператор:

Debug.Print r.Parent.Name

и всё станет понятнее.

Range, однажды определенный в любом месте (при помощи Set или в цикле For Each), хранит своё окружение ("родителя" и других "предков") в момент определения (Worksheet, Workbook и даже Application, если идет кросс-работа с несколькими экземплярами Excel) до конца жизни. Если не было явного указания листа, о чем сказал RAN, то папа Range - ActiveSheet в момент определения.

Quote (LightZ)
Забудьте про Селекты и Активейты

Ну, совсем-то не надо, наверное, забывать. А то как же тогда, например, ActiveWindow.FreezePanes = True делать?

Автор - Gustav
Дата добавления - 28.08.2012 в 09:57
RAN Дата: Вторник, 28.08.2012, 10:48 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Держи свой макрос
[vba]
Code
Sub Перенос3()
     Dim r As Range
     For Each r In Sheets("Данные").Range("B1:B23")
         Select Case r.Value
         Case "да"
             r.Previous = r
             Sheets("Да").Cells(Sheets("Да").Rows.Count, "A").End(xlUp).Offset(1).Insert Shift:=xlDown
             r.ClearContents
         Case "нет"
             r.Previous = r
             Sheets("Нет").Cells(Sheets("Нет").Rows.Count, "A").End(xlUp).Offset(1).Insert Shift:=xlDown
             r.ClearContents
         End Select
     Next
     On Error Resume Next
     Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДержи свой макрос
[vba]
Code
Sub Перенос3()
     Dim r As Range
     For Each r In Sheets("Данные").Range("B1:B23")
         Select Case r.Value
         Case "да"
             r.Previous = r
             Sheets("Да").Cells(Sheets("Да").Rows.Count, "A").End(xlUp).Offset(1).Insert Shift:=xlDown
             r.ClearContents
         Case "нет"
             r.Previous = r
             Sheets("Нет").Cells(Sheets("Нет").Rows.Count, "A").End(xlUp).Offset(1).Insert Shift:=xlDown
             r.ClearContents
         End Select
     Next
     On Error Resume Next
     Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub
[/vba]

Автор - RAN
Дата добавления - 28.08.2012 в 10:48
Gustav Дата: Вторник, 28.08.2012, 11:46 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1138 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Quote (RAN)

r.Previous = r
Sheets("Да").Cells(Sheets("Да").Rows.Count, "A").End(xlUp).Offset(1).Insert Shift:=xlDown
r.ClearContents

А Cut-то где? И зачем ячейке слева присваивать значение текущей? В исходном макросе, вроде, нет этой операции...

P.S. И если под Range("A1000") действительно имелась в виду ячейка ниже всех имеющихся данных, т.е. Cells(Sheets("Да").Rows.Count, "A"), то можно попробовать обойтись одним Cut с Destination (без отдельного Insert):

[vba]
Code

r.Previous.Cut Sheets("Да").Cells(Rows.Count, "A").End(xlUp).Offset(1)
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 28.08.2012, 12:07
 
Ответить
Сообщение
Quote (RAN)

r.Previous = r
Sheets("Да").Cells(Sheets("Да").Rows.Count, "A").End(xlUp).Offset(1).Insert Shift:=xlDown
r.ClearContents

А Cut-то где? И зачем ячейке слева присваивать значение текущей? В исходном макросе, вроде, нет этой операции...

P.S. И если под Range("A1000") действительно имелась в виду ячейка ниже всех имеющихся данных, т.е. Cells(Sheets("Да").Rows.Count, "A"), то можно попробовать обойтись одним Cut с Destination (без отдельного Insert):

[vba]
Code

r.Previous.Cut Sheets("Да").Cells(Rows.Count, "A").End(xlUp).Offset(1)
[/vba]

Автор - Gustav
Дата добавления - 28.08.2012 в 11:46
RAN Дата: Вторник, 28.08.2012, 12:40 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Может быть.
Я вообще смутно понял, что этот макрос должен делать. smile
Cut с толку сбил.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеМожет быть.
Я вообще смутно понял, что этот макрос должен делать. smile
Cut с толку сбил.

Автор - RAN
Дата добавления - 28.08.2012 в 12:40
light26 Дата: Вторник, 28.08.2012, 22:58 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
Держи свой макрос

Андрей, спасибо, но мне не макрос был нужен. Просто смутило большое количество Selectов, вот и решил уточнить правильно ли удалить из из тела макроса.
А что касается Sheets("***").Activate, так когда я в одном из своих макросов удалил эту запись все последующие команды выполнились не на том листе на котором нужно. Вот я и засомневался, когда Александр убрал Sheets("Данные").Activate из макроса.


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (RAN)
Держи свой макрос

Андрей, спасибо, но мне не макрос был нужен. Просто смутило большое количество Selectов, вот и решил уточнить правильно ли удалить из из тела макроса.
А что касается Sheets("***").Activate, так когда я в одном из своих макросов удалил эту запись все последующие команды выполнились не на том листе на котором нужно. Вот я и засомневался, когда Александр убрал Sheets("Данные").Activate из макроса.

Автор - light26
Дата добавления - 28.08.2012 в 22:58
Hugo Дата: Вторник, 28.08.2012, 23:53 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Сегодня проявилось ещё одно место, где нужен select, ну или хотя бы application.goto:

цитата (автор может сам заявить авторство smile ):

[vba]
Code
Ситуация следующая есть код

With sheet.Cells(2, "A").Resize(i - 2)
.FormatConditions.Add Type:=2, Formula1:="=A2<>A1+1"
.FormatConditions(1).Interior.ColorIndex = 40
End With

который должен вставлять формулу в ячейку =A2<>A1+1 и протягивать ее вниз на n строк.
Вместо упомянутой выше, он вставляет =A3<>A2+1. Че за нафиг?
[/vba]

А вот если добавить в начало кода
[vba]
Code
Sheet.Cells(2, "A").Select
[/vba]
или
[vba]
Code
Application.Goto Sheet.Cells(2, "A")
[/vba]

то всё работает как надо.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеСегодня проявилось ещё одно место, где нужен select, ну или хотя бы application.goto:

цитата (автор может сам заявить авторство smile ):

[vba]
Code
Ситуация следующая есть код

With sheet.Cells(2, "A").Resize(i - 2)
.FormatConditions.Add Type:=2, Formula1:="=A2<>A1+1"
.FormatConditions(1).Interior.ColorIndex = 40
End With

который должен вставлять формулу в ячейку =A2<>A1+1 и протягивать ее вниз на n строк.
Вместо упомянутой выше, он вставляет =A3<>A2+1. Че за нафиг?
[/vba]

А вот если добавить в начало кода
[vba]
Code
Sheet.Cells(2, "A").Select
[/vba]
или
[vba]
Code
Application.Goto Sheet.Cells(2, "A")
[/vba]

то всё работает как надо.

Автор - Hugo
Дата добавления - 28.08.2012 в 23:53
light26 Дата: Среда, 29.08.2012, 21:12 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Hugo)
Сегодня проявилось ещё одно место, где нужен select, ну или хотя бы application.goto:

Да я не поднимал вопрос о select. я говорил об отсутствии необходимости в применении в коде select.selection.
[vba]
Code
Range("A1000").Select
                 Selection.End(xlUp).Offset(1).Select
                 Selection.Insert Shift:=xlDown
[/vba]


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (Hugo)
Сегодня проявилось ещё одно место, где нужен select, ну или хотя бы application.goto:

Да я не поднимал вопрос о select. я говорил об отсутствии необходимости в применении в коде select.selection.
[vba]
Code
Range("A1000").Select
                 Selection.End(xlUp).Offset(1).Select
                 Selection.Insert Shift:=xlDown
[/vba]

Автор - light26
Дата добавления - 29.08.2012 в 21:12
RAN Дата: Среда, 29.08.2012, 21:37 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Quote (light26)
Андрей, спасибо, но мне не макрос был нужен.

Я так и понял, и не шибко старался.
Однако обрати внимание - в моем коде select/selection нет, но работает правильно (пусть и делает не совсем то, что может и надо, а то, что я написал).
А на то, что Игорь написал, не обращай внимания, слишком высокие материи. smile


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Quote (light26)
Андрей, спасибо, но мне не макрос был нужен.

Я так и понял, и не шибко старался.
Однако обрати внимание - в моем коде select/selection нет, но работает правильно (пусть и делает не совсем то, что может и надо, а то, что я написал).
А на то, что Игорь написал, не обращай внимания, слишком высокие материи. smile

Автор - RAN
Дата добавления - 29.08.2012 в 21:37
light26 Дата: Среда, 29.08.2012, 21:53 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
Однако обрати внимание - в моем коде select/selection нет

Разумеется, обратил.:)
Quote (RAN)
А на то, что Игорь написал, не обращай внимания, слишком высокие материи

Ты прав, я половины не понял. Хотя это заставило меня рассмотреть макрос еще раз, вдумчиво и внимательно. С переводом каждого слова и подгонкой под смысл.


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (RAN)
Однако обрати внимание - в моем коде select/selection нет

Разумеется, обратил.:)
Quote (RAN)
А на то, что Игорь написал, не обращай внимания, слишком высокие материи

Ты прав, я половины не понял. Хотя это заставило меня рассмотреть макрос еще раз, вдумчиво и внимательно. С переводом каждого слова и подгонкой под смысл.

Автор - light26
Дата добавления - 29.08.2012 в 21:53
Hugo Дата: Среда, 29.08.2012, 21:59 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Это про мой пример?
Там суть в том, что если кодом ставим УФ, то код пляшет от позиции активной ячейки, т.е. как попало в общем случае.
Поэтому сперва кодом нужно эту активную ячейку задать.
Может быть конечно можно как-то это иначе сделать, или отключить эту привязку к активной, не знаю... Мы это только вчера решали - сам такого не знал.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЭто про мой пример?
Там суть в том, что если кодом ставим УФ, то код пляшет от позиции активной ячейки, т.е. как попало в общем случае.
Поэтому сперва кодом нужно эту активную ячейку задать.
Может быть конечно можно как-то это иначе сделать, или отключить эту привязку к активной, не знаю... Мы это только вчера решали - сам такого не знал.

Автор - Hugo
Дата добавления - 29.08.2012 в 21:59
RAN Дата: Среда, 29.08.2012, 22:05 | Сообщение № 20
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Quote (light26)
Ты прав, я половины не понял.

Э..., нет! Половины не понял - это я. wink


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Quote (light26)
Ты прав, я половины не понял.

Э..., нет! Половины не понял - это я. wink

Автор - RAN
Дата добавления - 29.08.2012 в 22:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Значение ...Select.Selection... в VBA (Некие тонкости в коде макроса)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!