Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.05.2008, 10:35   #11
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Осмелюсь несколько поправить код от Abrakadabra.
Вот Ваша функция:
Код:
Public Function funString(ByVal s As String, NumWord As Long) As String
    On Error Resume Next
    s = Trim(fio)
    If Len(fio) = 0 Then
        funString = ""
        Exit Function
    Else
        funString = Split(s, " ")(NumWord)
    End If
End Function
1) Что такое "fio"? (функция работать не будет).
2) Вместо Trim(...), нужно использовать Application.Trim(...), для предотвращения ошибки в случае двух (и более) пробелов подряд.
3) Функция Split(...) возвращает массив нумерованный с 0. Поэтому номер слова в предложении будет отличаться от заданного на 1.
4) Т.к. используем On Error, то можно еще короче.
Если Вы не против, я бы сделал так:
Код:
Public Function funString(ByVal s As String, NumWord As Long) As String
    On Error Resume Next
    s = Application.Trim(s)
    funString = Split(s, " ")(NumWord - 1)
End Function
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 13.05.2008 в 10:40.
SAS888 вне форума
Старый 13.05.2008, 10:46   #12
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Abrakadabra
Функция была действительно глючная.
Первое и последнее слово не хотела вытаскивать.
SAS888
Большое спасибо!
Еще бы превратить код дмидми в функцию.
ZORRO2005 вне форума
Старый 13.05.2008, 11:42   #13
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Осмелюсь несколько поправить код от Abrakadabra.
Вот Ваша функция:
Код:
Public Function funString(ByVal s As String, NumWord As Long) As String
    On Error Resume Next
    s = Trim(fio)
    If Len(fio) = 0 Then
        funString = ""
        Exit Function
    Else
        funString = Split(s, " ")(NumWord)
    End If
End Function
1) Что такое "fio"? (функция работать не будет).
2) Вместо Trim(...), нужно использовать Application.Trim(...), для предотвращения ошибки в случае двух (и более) пробелов подряд.
3) Функция Split(...) возвращает массив нумерованный с 0. Поэтому номер слова в предложении будет отличаться от заданного на 1.
4) Т.к. используем On Error, то можно еще короче.
Если Вы не против, я бы сделал так:
Код:
Public Function funString(ByVal s As String, NumWord As Long) As String
    On Error Resume Next
    s = Application.Trim(s)
    funString = Split(s, " ")(NumWord - 1)
End Function
не против, ничуть..
вырезку недорезал, вот и остались лишние (или не те) строчки..
Спешил донести идею "в массы"..
Abrakadabra вне форума
Старый 23.05.2008, 15:27   #14
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Друзья, помогите превратить макрос в функцию.
Данные будут браться из ячейки.
Пример:
A1=SUM(B1:B100)
B1=CONVERTOR(A1) ---> =СУММ(B1:B100)
ZORRO2005 вне форума
Старый 23.05.2008, 18:22   #15
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Вот такой еще вариант.
В ячейку А3 пишем формулу, в ячейке В2 получаем перевод.

В колонках В и С пишем наименования функций, формулу из первой колонки размножаем вниз по мере добавления новых пар.



а макрос, как функцию я запускал так:
1.жму fx (значек левее строки формул)
2.в категориях выбираю "определенные пользователем"
3.из списка выбираю нужный макрос
4.... дальше понятно...
Вложения
Тип файла: rar Конвертор.rar (2.6 Кб, 13 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 26.05.2008, 06:18   #16
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Пример:
A1=SUM(B1:B100)
B1=CONVERTOR(A1) ---> =СУММ(B1:B100)
Не понятно следующее:
Если, например, установлен "русский" Excel, то как в ячейке "A1" хранится то, что приведено в примере? Если как формула, то будет ошибка. Если как текст, то тогда еще вопрос: какой формат ячейки - либо текстовый (тогда имеем текст в "чистом" виде), либо "общий" (с наличием лидирующего апострофа)?
И наоборот. Если установлен "английский" Excel, то какой нужен результат? При попытке вставить "русскую" формулу, будет выдана ошибка. Просто, получить текстовую строку?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 26.05.2008, 10:50   #17
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Извиняюсь не подумал.
Цитата:
Сообщение от SAS888 Посмотреть сообщение
Не понятно следующее:
Если, например, установлен "русский" Excel, то как в ячейке "A1" хранится то, что приведено в примере? Если как формула, то будет ошибка. Если как текст, то тогда еще вопрос: какой формат ячейки - либо текстовый (тогда имеем текст в "чистом" виде), либо "общий" (с наличием лидирующего апострофа)?
формат ячейки - текстовый.(равно(=) не буду писать)
Цитата:
И наоборот. Если установлен "английский" Excel, то какой нужен результат? При попытке вставить "русскую" формулу, будет выдана ошибка. Просто, получить текстовую строку?
да.(без равно(=))
ZORRO2005 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертор валют... не понятен принцип работы mid Помощь студентам 7 25.02.2011 23:33
конвертор exe в pas engeneer Паскаль, Turbo Pascal, PascalABC.NET 10 28.07.2008 11:21
Конвертор Djarx БД в Delphi 14 27.04.2008 17:04
Конвертор IB в FB SunKnight БД в Delphi 1 29.03.2008 20:10