Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите исправить функцию / 18 сообщений из 18, страница 1 из 1
12.09.2007, 08:39
    #34793064
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Код: plaintext
 [code=plaintext]помогите исправить функцию
...
Рейтинг: 0 / 0
12.09.2007, 08:46
    #34793078
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Function get_nomer_str(k_f46 As Integer, k_pred As Integer, k_grbud As Integer, k_uch As Integer) As get_nomer_str
On Error GoTo err
Dim name As String
Dim nomer As Integer
Dim flag_ok As Boolean
flag_ok = False

If k_pred =  859  And k_f46 =  3  And flag_ok <> True Then 
    name = "Город"
    nomer =  5  '50
    flag_ok = True
End If
If k_uch =  33  And k_f46 =  3  And flag_ok <> True Then 
    name = "Село"
    nomer =  6  '51
    flag_ok = True
End If

If flag_ok = False Then
    name = "Не то и не то "
    nomer =  20 
    'flag_ok = True
End If
get_nomer_str.nomer = nomer
get_nomer_str.name = name
get_nomer_str.flag_ok = flag_ok
Exit Function
err:
    MsgBox err.Description, vbCritical
End Function

вызываю функцию ....

Код: plaintext
1.
2.
Cells(i, "O") = get_nomer_str(tmp.Fields("k_f46"), tmp.Fields("k_pred"), Nz(tmp.Fields("k_grbud"),  0 ), tmp.Fields("k_uch")).nomer
                Cells(i, "P") = get_nomer_str(tmp.Fields("k_f46"), tmp.Fields("k_pred"), Nz(tmp.Fields("k_grbud"),  0 ), tmp.Fields("k_uch")).name
                Cells(i, "Q") = get_nomer_str(tmp.Fields("k_f46"), tmp.Fields("k_pred"), Nz(tmp.Fields("k_grbud"),  0 ), tmp.Fields("k_uch")).flag_ok


сейчас все работает, но мне нужно сделать так чтобы условие считывалось с ячейки, то есть k_pred = 859 And k_f46 = 3 - записать в Лист2.cells(1,2) и с нее считывалось, пробовала просто в функцию записать вместо k_pred = 859 And k_f46 = 3 - Лист2.cells(1,2), Excel выдает ошибку
Код: plaintext
Type mismatch

помогите кто знает...
...
Рейтинг: 0 / 0
12.09.2007, 09:23
    #34793151
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Function get_nomer_str ... As get_nomer_str
Это сильно, у меня так не получилось

Dim name As String — name это зарезервированное слово


то есть k_pred = 859 And k_f46 = 3 - записать в Лист2.cells(1,2) и с нее считывалось, пробовала просто в функцию записать вместо k_pred = 859 And k_f46 = 3 - Лист2.cells(1,2), Excel выдает ошибку

k_pred = 859 And k_f46 = 3 это логическое условие и тогда вы листе должны записать true или false.
А в функции заменить If k_pred = 859 And k_f46 = 3 на if cells(1,1).value. Если же вы хотите брать с листа значения k_pred и k_f46 , то в формуле пишите — If k_pred = range("A1").value And k_f46 = range("A2").value.

ps
flag_ok <> True замените на not flag_ok.
...
Рейтинг: 0 / 0
12.09.2007, 09:46
    #34793215
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
комбинация условий может быть любой, мне нужно как то передать это условие, то есть if cells(1,1) and .... и как то передать ячейку как условие....?
...
Рейтинг: 0 / 0
12.09.2007, 10:07
    #34793274
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Ну так я же написал — if cells(1,1).value или я вас не очень понимаю.
...
Рейтинг: 0 / 0
12.09.2007, 10:33
    #34793362
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
k_pred = 20 And k_f46 = 8[SRC vba][/src]
а может вообще isnull(k_uch) я заранее не знаю какое записано в ячейке условие, поэтому мне именно с ячейки надо УСЛОВИЕ считать и передать в if, проблема в том что считав с ячейки текст, VBA воспринимает как строку, а мне нужно чтобы воспринимал как условие.....

?
...
Рейтинг: 0 / 0
12.09.2007, 10:35
    #34793368
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Код: plaintext
k_pred =  20  And k_f46 =  8 

а может вообще isnull(k_uch) я заранее не знаю какое записано в ячейке условие, поэтому мне именно с ячейки надо УСЛОВИЕ считать и передать в if, проблема в том что считав с ячейки текст, VBA воспринимает как строку, а мне нужно чтобы воспринимал как условие.....

?
...
Рейтинг: 0 / 0
12.09.2007, 11:27
    #34793590
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
то есть : не подскажете как в if лист2.cells(1,1) then ...
как указать что лист2.cells(1,1) - это условие, а то VBA воспринимает это как строчку, раньше в басике было что если заключено в амперсанты то значит условие
может какая функция есть?
...
Рейтинг: 0 / 0
12.09.2007, 12:53
    #34794052
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
помогите кто знает, плис...
...
Рейтинг: 0 / 0
12.09.2007, 14:43
    #34794579
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
evaluate
...
Рейтинг: 0 / 0
12.09.2007, 15:07
    #34794667
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
выдает ошибку

Код: plaintext
type mismatch
...
Рейтинг: 0 / 0
12.09.2007, 15:39
    #34794819
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
На что именно выдает ошибку?
...
Рейтинг: 0 / 0
13.09.2007, 07:22
    #34796277
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Сформировала простой но наглядный пример
Помогите исправить ошибку...
...
Рейтинг: 0 / 0
13.09.2007, 21:58
    #34799250
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
модератору: поубиваете уже лишние темы
...
Рейтинг: 0 / 0
13.09.2007, 22:00
    #34799255
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Deggasadмодератору: поубиваете уже лишние темы
В свою очередь считаю. что наиболее полно в понимании автора и его потребностей продвинулся KL(XL) в разделе MSOffice, а остальные темы можно убить, но это моё личное мнение.
...
Рейтинг: 0 / 0
14.09.2007, 05:56
    #34799483
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Разве в количестве дело???
...
Рейтинг: 0 / 0
14.09.2007, 08:20
    #34799574
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
Правила форума на SQL.RUНе рекомендуется:
...
Отправлять сообщение одновременно в несколько форумов. Модераторы соответствующих форумов вправе удалить такие сообщения.

Создавать несколько топиков с одинаковым вопросом.

Правила форума. Прочтите перед тем как задавать вопрос! - Magnus23 ...
5. Кросспостинг(дублирование топиков в разных форумах) явление не желательное. Если вы не уверены и все же хотите получить мнение экспертов с разных форумов(связанных по тематике) - создайте сообщение со ссылкой на оригинальную тему.

6. Дублирование топиков также не приветствуется. Если тема вопроса все еще актуальна - не нужно создавать новый, просто поднимите вопрос наверх запостив в него новое сообщение.
...
...
Рейтинг: 0 / 0
14.09.2007, 11:51
    #34800284
Klera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить функцию
http://www.sql.ru/forum/actualthread.aspx?tid=473091&pg=2
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите исправить функцию / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]