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

Вход

Регистрация

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

 

= Мир MS Excel/Как работает Refedit - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как работает Refedit (Макросы/Sub)
Как работает Refedit
flash708 Дата: Суббота, 04.04.2015, 12:09 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Всем доброго времени суток!
Пытался с помощью Refedit выделить конкретную ячейку. У меня в Refedit всегда только одна ячейка, а не диапазон ячеек.
Когда я пытался ввести строку
Range(Refedit1).Activate
то выходит сообщение об ошибке:
Method 'Range' of object '_Global' failed
Прошу помочь исправить данную ошибку.
К сообщению приложен файл: Refedit.xlsm (19.6 Kb)
 
Ответить
СообщениеВсем доброго времени суток!
Пытался с помощью Refedit выделить конкретную ячейку. У меня в Refedit всегда только одна ячейка, а не диапазон ячеек.
Когда я пытался ввести строку
Range(Refedit1).Activate
то выходит сообщение об ошибке:
Method 'Range' of object '_Global' failed
Прошу помочь исправить данную ошибку.

Автор - flash708
Дата добавления - 04.04.2015 в 12:09
Pelena Дата: Суббота, 04.04.2015, 12:16 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте. У меня работает без ошибок и с одной ячейкой и с диапазоном


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте. У меня работает без ошибок и с одной ячейкой и с диапазоном

Автор - Pelena
Дата добавления - 04.04.2015 в 12:16
KuklP Дата: Суббота, 04.04.2015, 13:37 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[vba]
Код
Sub ПоказатьФорму()
       Application.ReferenceStyle = xlA1
       UserForm1.Show
End Sub
[/vba]
Или:
[vba]
Код
Private Sub CommandButton1_Click()
     Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Activate
     MsgBox (ActiveCell.Row)
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 04.04.2015, 13:51
 
Ответить
Сообщение[vba]
Код
Sub ПоказатьФорму()
       Application.ReferenceStyle = xlA1
       UserForm1.Show
End Sub
[/vba]
Или:
[vba]
Код
Private Sub CommandButton1_Click()
     Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Activate
     MsgBox (ActiveCell.Row)
End Sub
[/vba]

Автор - KuklP
Дата добавления - 04.04.2015 в 13:37
flash708 Дата: Суббота, 04.04.2015, 14:29 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, спасибо огромное :-)
 
Ответить
СообщениеKuklP, спасибо огромное :-)

Автор - flash708
Дата добавления - 04.04.2015 в 14:29
flash708 Дата: Суббота, 04.04.2015, 14:40 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, это интересно, но можно встречный вопрос - как выделить соседнюю ячейку? или может быть можно выяснить как называется шрифт в соседней ячейке (в той же строке или в том же столбце), не выделяя ее?
 
Ответить
СообщениеKuklP, это интересно, но можно встречный вопрос - как выделить соседнюю ячейку? или может быть можно выяснить как называется шрифт в соседней ячейке (в той же строке или в том же столбце), не выделяя ее?

Автор - flash708
Дата добавления - 04.04.2015 в 14:40
flash708 Дата: Суббота, 04.04.2015, 14:43 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
flash708, хотя я попробую сам. например так
N = activecell.row
M=activecell.column
cells(n+1,m).select
и т.д.
 
Ответить
Сообщениеflash708, хотя я попробую сам. например так
N = activecell.row
M=activecell.column
cells(n+1,m).select
и т.д.

Автор - flash708
Дата добавления - 04.04.2015 в 14:43
KuklP Дата: Суббота, 04.04.2015, 14:47 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
У каждой ячейки может быть 8 соседних. Какую соседнюю желаете?
В общем пользуйтесь свойствами offset, font.name. И избегайте селектов. Свойства объектов можно получать не выделяя их. Так выясняем имя шрифта ячейки справа от указанной:
[vba]
Код
Private Sub CommandButton1_Click()
     MsgBox (Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Offset(, 1).Font.Name)
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 04.04.2015, 14:55
 
Ответить
СообщениеУ каждой ячейки может быть 8 соседних. Какую соседнюю желаете?
В общем пользуйтесь свойствами offset, font.name. И избегайте селектов. Свойства объектов можно получать не выделяя их. Так выясняем имя шрифта ячейки справа от указанной:
[vba]
Код
Private Sub CommandButton1_Click()
     MsgBox (Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Offset(, 1).Font.Name)
End Sub
[/vba]

Автор - KuklP
Дата добавления - 04.04.2015 в 14:47
flash708 Дата: Суббота, 04.04.2015, 20:52 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, Огромное спасибо!!!
 
Ответить
СообщениеKuklP, Огромное спасибо!!!

Автор - flash708
Дата добавления - 04.04.2015 в 20:52
flash708 Дата: Воскресенье, 05.04.2015, 20:17 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, простите за беспокойство, но у меня возникла проблема после запуска макроса. Часто Excel закрывается сам по себе, выдается ошибка типа Appcrash. Подскажите пожалуйста как можно ее устранить. Заранее спасибо.
 
Ответить
СообщениеKuklP, простите за беспокойство, но у меня возникла проблема после запуска макроса. Часто Excel закрывается сам по себе, выдается ошибка типа Appcrash. Подскажите пожалуйста как можно ее устранить. Заранее спасибо.

Автор - flash708
Дата добавления - 05.04.2015 в 20:17
KuklP Дата: Воскресенье, 05.04.2015, 20:53 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
В макросе нет ничего такого, что могло бы валить экс. Причина не в нем. Мож криво ломаный экс, или кривая установка. А может какие программы с эксом конфликтуют.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВ макросе нет ничего такого, что могло бы валить экс. Причина не в нем. Мож криво ломаный экс, или кривая установка. А может какие программы с эксом конфликтуют.

Автор - KuklP
Дата добавления - 05.04.2015 в 20:53
flash708 Дата: Воскресенье, 05.04.2015, 21:08 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, у меня всё лицензионное. просто интересно как этого избежать, может в реестре что удалить?
 
Ответить
СообщениеKuklP, у меня всё лицензионное. просто интересно как этого избежать, может в реестре что удалить?

Автор - flash708
Дата добавления - 05.04.2015 в 21:08
flash708 Дата: Воскресенье, 05.04.2015, 21:30 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, взял установочный диск, выполнил исправление ошибок, проблема исчезла
 
Ответить
СообщениеKuklP, взял установочный диск, выполнил исправление ошибок, проблема исчезла

Автор - flash708
Дата добавления - 05.04.2015 в 21:30
KuklP Дата: Воскресенье, 05.04.2015, 21:33 | Сообщение № 13
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Ну вот Вам и "лицензионный". :D У меня на портабельной сборке работает..


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеНу вот Вам и "лицензионный". :D У меня на портабельной сборке работает..

Автор - KuklP
Дата добавления - 05.04.2015 в 21:33
flash708 Дата: Четверг, 09.04.2015, 22:11 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, простите, но можно еще вопрос по данной теме?
когда я ввожу Refedit2 но так чтобы его значение вычислялось автоматически

[vba]
Код
Private Sub CommandButton13_Click()

x2 = 7
y2 = 7

RefEdit2.Value = Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Offset(x2, y2).Address

a = Range(Application.ConvertFormula(RefEdit2, xlR1C1, xlA1)).Row
b = Range(Application.ConvertFormula(RefEdit2, xlR1C1, xlA1)).Column
Cells(a, b).Select

End Sub
[/vba]

то у меня выходит сообщение об ошибке, поскольку в Refedit1 содержится Лист1!R2C2, а в Refedit2 - $I$9. Подскажите пожалуйста как $I$9
перевести в другой формат (чтобы было Лист1!R9C9
Спасибо.
[moder]Оформите код тегами (кнопка #)[/moder]


Сообщение отредактировал flash708 - Четверг, 09.04.2015, 23:29
 
Ответить
СообщениеKuklP, простите, но можно еще вопрос по данной теме?
когда я ввожу Refedit2 но так чтобы его значение вычислялось автоматически

[vba]
Код
Private Sub CommandButton13_Click()

x2 = 7
y2 = 7

RefEdit2.Value = Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Offset(x2, y2).Address

a = Range(Application.ConvertFormula(RefEdit2, xlR1C1, xlA1)).Row
b = Range(Application.ConvertFormula(RefEdit2, xlR1C1, xlA1)).Column
Cells(a, b).Select

End Sub
[/vba]

то у меня выходит сообщение об ошибке, поскольку в Refedit1 содержится Лист1!R2C2, а в Refedit2 - $I$9. Подскажите пожалуйста как $I$9
перевести в другой формат (чтобы было Лист1!R9C9
Спасибо.
[moder]Оформите код тегами (кнопка #)[/moder]

Автор - flash708
Дата добавления - 09.04.2015 в 22:11
KuklP Дата: Четверг, 09.04.2015, 22:17 | Сообщение № 15
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Почитайте внимательно справку по Address. Там в параметрах можно задавать стиль R1С1. И не надо вычислять строку и столбец.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеПочитайте внимательно справку по Address. Там в параметрах можно задавать стиль R1С1. И не надо вычислять строку и столбец.

Автор - KuklP
Дата добавления - 09.04.2015 в 22:17
RAN Дата: Четверг, 09.04.2015, 22:34 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Серег, ты не совсем прав.
RefEdit та еще зараза.
И там нужно либо конвертировать адрес, если включен стиль R1C1, либо, как я делал, по событию Enter менять стиль ссылки.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСерег, ты не совсем прав.
RefEdit та еще зараза.
И там нужно либо конвертировать адрес, если включен стиль R1C1, либо, как я делал, по событию Enter менять стиль ссылки.

Автор - RAN
Дата добавления - 09.04.2015 в 22:34
KuklP Дата: Четверг, 09.04.2015, 23:05 | Сообщение № 17
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Не Андрюх, так работает:
[vba]
Код
Private Sub CommandButton1_Click()
     RefEdit2.Value = Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Offset(7, 7).Address(, , xlR1C1)
     Range(Application.ConvertFormula(RefEdit2, xlR1C1, xlA1)).Select
End Sub
[/vba]Только почему-то выбрасывает все время в form.show :D


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеНе Андрюх, так работает:
[vba]
Код
Private Sub CommandButton1_Click()
     RefEdit2.Value = Range(Application.ConvertFormula(RefEdit1, xlR1C1, xlA1)).Offset(7, 7).Address(, , xlR1C1)
     Range(Application.ConvertFormula(RefEdit2, xlR1C1, xlA1)).Select
End Sub
[/vba]Только почему-то выбрасывает все время в form.show :D

Автор - KuklP
Дата добавления - 09.04.2015 в 23:05
RAN Дата: Четверг, 09.04.2015, 23:14 | Сообщение № 18
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Серег, сейчас вспоминать подробности влом. Но без этого не работало <_<
[vba]
Код
Private Sub UserForm_Initialize()
       If Application.ReferenceStyle = xlR1C1 Then
           RefStyle = xlR1C1
           Application.ReferenceStyle = xlA1
       Else
           RefStyle = xlA1
       End If
       If TypeName(Selection) = "Range" Then RfRange = Selection.Address
       Call OptBtn_Chang
End Sub
[/vba]

Подумав, вспомнил. Я там с листа грузил. Пардоньте.


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

Сообщение отредактировал RAN - Четверг, 09.04.2015, 23:17
 
Ответить
СообщениеСерег, сейчас вспоминать подробности влом. Но без этого не работало <_<
[vba]
Код
Private Sub UserForm_Initialize()
       If Application.ReferenceStyle = xlR1C1 Then
           RefStyle = xlR1C1
           Application.ReferenceStyle = xlA1
       Else
           RefStyle = xlA1
       End If
       If TypeName(Selection) = "Range" Then RfRange = Selection.Address
       Call OptBtn_Chang
End Sub
[/vba]

Подумав, вспомнил. Я там с листа грузил. Пардоньте.

Автор - RAN
Дата добавления - 09.04.2015 в 23:14
flash708 Дата: Четверг, 09.04.2015, 23:35 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, Ура! Спасибо, получилось! Никуда ничего не выбрасывает! Правда, я пару дней назад переустановил весь Excel :-) Сначала весь Office удалил, потом снова поставил)
 
Ответить
СообщениеKuklP, Ура! Спасибо, получилось! Никуда ничего не выбрасывает! Правда, я пару дней назад переустановил весь Excel :-) Сначала весь Office удалил, потом снова поставил)

Автор - flash708
Дата добавления - 09.04.2015 в 23:35
Апострофф Дата: Пятница, 10.04.2015, 07:12 | Сообщение № 20
Группа: Проверенные
Ранг: Обитатель
Сообщений: 449
Репутация: 124 ±
Замечаний: 0% ±

Excel 1997
[offtop] Pelena, проверьте пожалуйста почту на планете.
Извиняюсь за оффтоп[/offtop]
 
Ответить
Сообщение[offtop] Pelena, проверьте пожалуйста почту на планете.
Извиняюсь за оффтоп[/offtop]

Автор - Апострофф
Дата добавления - 10.04.2015 в 07:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как работает Refedit (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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