Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача переменной по ссылке, в переменной остается старое значение 
V
    Опции темы
hawkins
Дата 4.7.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



Есть такой код в VBA Excel:

Код

Public Sub ConvertLinks()
Dim F As String, c As Long, st As String
 c = 9
 For r = 5 To 47
 F = Cells(r, c).Formula
  CheckAndConvert (F)  
  Debug.Print F
 Next r
End Sub

Public Function CheckAndConvert(AFormula As String)
 If Mid$(AFormula, 1, 1) = "=" Then
   AFormula = "Formula"
   CheckAndConvert = True
  Else
   AFormula = "Value"
   CheckAndConvert = False
  End If
End Function


процедура ConvertLinks вызывается кнопкой. После вызова строки "Debug.Print F"
 в окне для всех ячеек печатается их формула, а мне надо чтобы выводилось либо "Formula"
 либо "Value". Не пойму в чем дело, переменная F вроде бы передается по ссылке.
 Подскажите как подправить код чтобы правильно работало. 

PM MAIL   Вверх
Akina
Дата 4.7.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Добавь ByRef


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
hawkins
Дата 4.7.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



ByRef не помог, но проблему решил все-таки: если строку вызова процедуры записать так
 res = CheckAndConvert (F), то в F возвращается правильное значение.  Видимо такая особенность
компилятора.
PM MAIL   Вверх
LOPUH
Дата 5.7.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 15.2.2008
Где: Красноярск

Репутация: 3
Всего: 4



Гы.. откуда в VBA компилятор.. smile   Наверно вы хотели сказать интерпретатор..
PM MAIL   Вверх
hawkins
Дата 5.7.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



Ну да, конечно, интерпретатор  smile . Вообще я на VBA совсем недавно начал кодить, до этого в основном с делфи работал, вот и путаю. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.2331 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.