Высокие статистические технологии

Форум сайта семьи Орловых

Текущее время: Чт ноя 14, 2024 4:10 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Поле RefEdit
СообщениеДобавлено: Пн окт 09, 2006 9:03 am 
Не в сети

Зарегистрирован: Ср окт 04, 2006 10:05 am
Сообщений: 47
Удалено


Последний раз редактировалось Игорь Пн май 07, 2007 4:06 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 09, 2006 2:42 pm 
Не в сети

Зарегистрирован: Пн дек 19, 2005 10:45 am
Сообщений: 19
Код:
Private Sub CommandButton1_Click()
    If Me.RefEdit1.Value <> "" Then
       iAddress = Application.ConvertFormula(Me.RefEdit1.Value, _
       IIf(Application.ReferenceStyle = xlA1, xlA1, xlR1C1), xlA1)
       If Not IsError(iAddress) Then
          'К сожалению этого мало, ибо RefEdit позволяет вводить практически всё что угодно,
          'поэтому, как ни печально, но по всей видимости, без использования On Error здесь не обойтись ...
          MsgBox iAddress, , ""
       End If
    Else
       MsgBox "Необходимо выбрать нужную ячейку/диапазон", , "Ошибка пользователя !!!"
    End If
End Sub


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 10, 2006 6:41 am 
Не в сети

Зарегистрирован: Ср окт 04, 2006 10:05 am
Сообщений: 47
Удалено


Последний раз редактировалось Игорь Пн май 07, 2007 4:06 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 10, 2006 1:08 pm 
Не в сети

Зарегистрирован: Пн дек 19, 2005 10:45 am
Сообщений: 19
Всё правильно, ибо я делал акцент именно на различия в стиле ссылок, а сообщения не имеют определяющего значения, собственно говоря, я просто не мог отказать себе в небольшом удовольствии обхамить нерадивого пользователя.

А намекал я - вот на что :

Код:
Private Sub UserForm_Initialize()
    Application.ReferenceStyle = xlR1C1 'а можно установить и xlA1, а при выгрузке формы - вернуть всё на круги своя
End Sub

Private Sub CommandButton1_Click()
    Dim iAddress, iRange As Range
   
    iAddress = Me.RefEdit1.Value
   
    If iAddress <> "" Then
       MsgBox "Адрес диапазона в стиле R1C1 : " & iAddress
       
       Set iRange = Range(iAddress) 'здесь должна возникнуть ошибка
    End If
End Sub


Код:
Private Sub UserForm_Initialize()
    Application.ReferenceStyle = xlR1C1
End Sub

Private Sub CommandButton1_Click()
    Dim iAddress, iRange As Range
   
    iAddress = Me.RefEdit1.Value
   
    If iAddress <> "" Then
       If Application.ReferenceStyle = xlR1C1 Then 'вроде бы необязательно, но только на первый взгляд, ибо изменение стиля ссылок (при инициализации формы) используется только в качестве примера.
          iAddress = Application.ConvertFormula(iAddress, xlR1C1, xlA1)
          MsgBox "Адрес диапазона в стиле A1 : " & iAddress
       End If
       
       Set iRange = Range(iAddress)
    End If
End Sub


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 10, 2006 1:24 pm 
Не в сети

Зарегистрирован: Ср окт 04, 2006 10:05 am
Сообщений: 47
Удалено


Последний раз редактировалось Игорь Пн май 07, 2007 4:07 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 23, 2006 9:54 am 
Не в сети

Зарегистрирован: Ср окт 04, 2006 10:05 am
Сообщений: 47
Удалено


Последний раз редактировалось Игорь Пн май 07, 2007 4:07 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 23, 2006 2:18 pm 
Не в сети

Зарегистрирован: Пн дек 19, 2005 10:45 am
Сообщений: 19
Цитата:
Вот это не работает
Код:
Dim iAddress, iRange As Range

А тип Variant работает. (c) Игорь 23/10/06


Это заблуждение :P ибо подобное описание переменных означает, что переменная iAddress будет иметь тип Variant.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 24, 2006 7:45 am 
Не в сети

Зарегистрирован: Ср окт 04, 2006 10:05 am
Сообщений: 47
Удалено


Последний раз редактировалось Игорь Пн май 07, 2007 4:08 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 24, 2006 4:02 pm 
Не в сети

Зарегистрирован: Пн дек 19, 2005 10:45 am
Сообщений: 19
Здесь необходимо уточнить (вкратце) : переменная iAddress хоть и возвращает строку (String), но в моём примере, должна иметь тип Variant, так как в случае некорректного выбора в RefEdit1 - функция ConvertFormula возвратит значение ошибки. А вот переменная iRange ссылается именно на об'ект Range, поэтому, подобное описание этой переменной - правильное.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB