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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.05.2008, 01:33   #1
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию Конвертор

Друзья,
Часто приходится брать длинные формулы (не файлы) с ангоязычных сайтов.
У меня EXCEL2003RUS и EXCEL2007RUS
Приходится вручную подставлять вместо английских функций русские.
Есть ли какие-нибудь автоматические конверторы?
Вот здесь есть формула для вытаскивания слова из предложения:
Код:
=MID(MID(MID(SUBSTITUTE(A6," ","^",3),1,256),FIND("^",SUBSTITUTE(A6," ","^",3)),256),2,FIND(" ",MID(MID(SUBSTITUTE(A6," ","^",3),1,256),FIND("^",SUBSTITUTE(A6," ","^",3)),256))-2)
Но что-то она у меня не работает после моих подстановок. Может в ней ошибка.
Если не трудно закиньте в EXCEL2003ENG и выложите файл.

Последний раз редактировалось ZORRO2005; 12.05.2008 в 01:37.
ZORRO2005 вне форума
Старый 12.05.2008, 11:13   #2
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от ZORRO2005 Посмотреть сообщение
Друзья,
Часто приходится брать длинные формулы (не файлы) с ангоязычных сайтов.
У меня EXCEL2003RUS и EXCEL2007RUS
Приходится вручную подставлять вместо английских функций русские.
Есть ли какие-нибудь автоматические конверторы?
Вот здесь есть формула для вытаскивания слова из предложения:
Код:
=MID(MID(MID(SUBSTITUTE(A6," ","^",3),1,256),FIND("^",SUBSTITUTE(A6," ","^",3)),256),2,FIND(" ",MID(MID(SUBSTITUTE(A6," ","^",3),1,256),FIND("^",SUBSTITUTE(A6," ","^",3)),256))-2)
Но что-то она у меня не работает после моих подстановок. Может в ней ошибка.
Если не трудно закиньте в EXCEL2003ENG и выложите файл.

А может вообще сменить подход к решению задач такого типа и писать функции на VBA? В силу их универсальности не нужно будет заниматься решением вышеизложенных проблем, привязывать формулы к конкретным ячейкам, можно напр. указывать ячейку как аргумент функции.. Вот Вам и универсальность применения..
Abrakadabra вне форума
Старый 12.05.2008, 12:31   #3
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Abrakadabra
От Вас другого ответа и не ожидал.
Друзья,
Вопрос в силе
ZORRO2005 вне форума
Старый 12.05.2008, 13:10   #4
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от ZORRO2005 Посмотреть сообщение
Abrakadabra
От Вас другого ответа и не ожидал.
Вы наверное просто не поняли, о чем идет речь..
Abrakadabra вне форума
Старый 12.05.2008, 13:24   #5
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Стрелка Как делал, рассказать?

Код:
=ПСТР(ПОДСТАВИТЬ(R[-1]C;" ";"^";ДЛСТР(R[-1]C)-ДЛСТР(ПОДСТАВИТЬ(R[-1]C;" ";"")));НАЙТИ("^";ПОДСТАВИТЬ(R[-1]C;" ";"^";ДЛСТР(R[-1]C)-ДЛСТР(ПОДСТАВИТЬ(R[-1]C;" ";""))))+1;256)
дмидми вне форума
Старый 12.05.2008, 13:47   #6
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

дмидми
С этой формулой все в порядке.
Это для вытаскивания последнего слова.
А мне нужна формула,которая здесь ниже.
ZORRO2005 вне форума
Старый 12.05.2008, 13:56   #7
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Abrakadabra
Если бы меня интесовал код для вытаскивания n-го слова из
ячейки то я бы взял бы его с того же сайта:
Код:
Option Compare Text
Function Get_Word(text_string As String, nth_word) As String
Dim lWordCount As Long

        With Application.WorksheetFunction
        lWordCount = Len(text_string) - Len(.Substitute(text_string, " ", "")) + 1
        
        If IsNumeric(nth_word) Then
           nth_word = nth_word - 1
            Get_Word = Mid(Mid(Mid(.Substitute(text_string, " ", "^", nth_word), 1, 256), _
                .Find("^", .Substitute(text_string, " ", "^", nth_word)), 256), 2, _
                .Find(" ", Mid(Mid(.Substitute(text_string, " ", "^", nth_word), 1, 256), _
                .Find("^", .Substitute(text_string, " ", "^", nth_word)), 256)) - 2)
        ElseIf nth_word = "First" Then
            Get_Word = Left(text_string, .Find(" ", text_string) - 1)
        ElseIf nth_word = "Last" Then
            Get_Word = Mid(.Substitute(text_string, " ", "^", Len(text_string) - _
            Len(.Substitute(text_string, " ", ""))), .Find("^", .Substitute(text_string, " ", "^", _
            Len(text_string) - Len(.Substitute(text_string, " ", "")))) + 1, 256)
        End If
    End With
    
End Function

Последний раз редактировалось ZORRO2005; 12.05.2008 в 13:59.
ZORRO2005 вне форума
Старый 12.05.2008, 14:10   #8
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Лампочка Пускай работает железный паровоз (с)

Цитата:
Сообщение от ZORRO2005 Посмотреть сообщение
А мне нужна формула...
Да вставляйте (Ctrl+V) в InputBox любую!
Код:
Sub Localize_A1_Style()
    Const ibPROMPT = "Enter USA-formula"
    Const ibTTL = "Localize"
    Dim s As String

    s = InputBox(ibPROMPT, ibTTL)
    If Len(s) > 0 Then  ActiveCell.Formula = s
End Sub
Ну вот, хотел было в цикле, и забирать по Ctrl+C из InputBox'а, но - увы! - кодировки не срастаются.

Последний раз редактировалось дмидми; 12.05.2008 в 14:23. Причина: Кодировки...
дмидми вне форума
Старый 12.05.2008, 15:26   #9
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

дмидми
Спасибо большое!
А можно функцией сделать?
ZORRO2005 вне форума
Старый 13.05.2008, 09:35   #10
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от ZORRO2005 Посмотреть сообщение
Abrakadabra
Если бы меня интесовал код для вытаскивания n-го слова из
ячейки то я бы взял бы его с того же сайта:
Код:
Option Compare Text
Function Get_Word(text_string As String, nth_word) As String
Dim lWordCount As Long

        With Application.WorksheetFunction
        lWordCount = Len(text_string) - Len(.Substitute(text_string, " ", "")) + 1
        
        If IsNumeric(nth_word) Then
           nth_word = nth_word - 1
            Get_Word = Mid(Mid(Mid(.Substitute(text_string, " ", "^", nth_word), 1, 256), _
                .Find("^", .Substitute(text_string, " ", "^", nth_word)), 256), 2, _
                .Find(" ", Mid(Mid(.Substitute(text_string, " ", "^", nth_word), 1, 256), _
                .Find("^", .Substitute(text_string, " ", "^", nth_word)), 256)) - 2)
        ElseIf nth_word = "First" Then
            Get_Word = Left(text_string, .Find(" ", text_string) - 1)
        ElseIf nth_word = "Last" Then
            Get_Word = Mid(.Substitute(text_string, " ", "^", Len(text_string) - _
            Len(.Substitute(text_string, " ", ""))), .Find("^", .Substitute(text_string, " ", "^", _
            Len(text_string) - Len(.Substitute(text_string, " ", "")))) + 1, 256)
        End If
    End With
    
End Function

Ну зачем-же так длинно.. И с глюком.
Можно проще.
Вложения
Тип файла: rar слова-слова...rar (6.6 Кб, 18 просмотров)
Abrakadabra вне форума
Закрытая тема


Купить рекламу на форуме - 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