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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2009, 10:43   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Вырезать числа из текста

как сделать чтобы из строки at point X=345465,34 Y=8657845,45 Z= 0.00
число при Х записывалось в одну ячейку а при у в другую ячейку.
Aleksandr вне форума Ответить с цитированием
Старый 14.10.2009, 10:44   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Надо сделать при помощи формулы, или макроса?

При помощи формул:
Код:
  Ячейка: B1      Формула  (стиль A1):   =ЗНАЧЕН(ПСТР(A1;НАЙТИ("X=";A1)+2;НАЙТИ("Y=";A1)-НАЙТИ("X=";A1)-3))
                  Формула  (стиль R1C1): =ЗНАЧЕН(ПСТР(RC[-1];НАЙТИ("X=";RC[-1])+2;НАЙТИ("Y=";RC[-1])-НАЙТИ("X=";RC[-1])-3))

  Ячейка: C1      Формула  (стиль A1):   =ЗНАЧЕН(ПСТР(A1;НАЙТИ("Y=";A1)+2;НАЙТИ("Z=";A1)-НАЙТИ("Y=";A1)-3))
                  Формула  (стиль R1C1): =ЗНАЧЕН(ПСТР(RC[-2];НАЙТИ("Y=";RC[-2])+2;НАЙТИ("Z=";RC[-2])-НАЙТИ("Y=";RC[-2])-3))
Пример:

Последний раз редактировалось EducatedFool; 14.10.2009 в 10:49.
EducatedFool вне форума Ответить с цитированием
Старый 14.10.2009, 10:45   #3
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

можно и формулы

Почему-то не работает

Все разобрался . Спасибо.

Последний раз редактировалось EducatedFool; 14.10.2009 в 11:16.
Aleksandr вне форума Ответить с цитированием
Старый 15.10.2009, 10:08   #4
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

А как сделать это макросом?
Aleksandr вне форума Ответить с цитированием
Старый 15.10.2009, 10:21   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Как-то так:
Код:
Sub test()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In Range([A1], Range("A" & Rows.Count).End(xlUp)).Cells
        cell.Next = Val(Replace(Split(cell, "=")(1), ",", "."))
        cell.Next.Next = Val(Replace(Split(cell, "=")(2), ",", "."))
    Next cell
    Application.ScreenUpdating = True
End Sub
Пример:

EducatedFool вне форума Ответить с цитированием
Старый 15.10.2009, 11:01   #6
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

А как сделать чтобы вставлялось через строчку
Aleksandr вне форума Ответить с цитированием
Старый 15.10.2009, 11:12   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Сообщение от Aleksandr Посмотреть сообщение
А как сделать чтобы вставлялось через строчку
А поподробнее можно?
Хоть бы показали пример того, что должно получиться...
EducatedFool вне форума Ответить с цитированием
Старый 15.10.2009, 11:19   #8
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Чтобы значения при х и у были разбросаны с шагом 1. Вот пример.
Код:
345465.34	         8657845.45
	
345465.34	         8657845.45

345465.34	         8657845.45

345465.34	         8657845.45

345465.34	         8657845.45

345465.34	         8657845.45
Aleksandr вне форума Ответить с цитированием
Старый 15.10.2009, 14:54   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Код:
Sub test()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In Range([A1], Range("A" & Rows.Count).End(xlUp)).Cells
        Cells(cell.Row * 2 - 1, 2) = Val(Replace(Split(cell, "=")(1), ",", "."))
        Cells(cell.Row * 2 - 1, 3) = Val(Replace(Split(cell, "=")(2), ",", "."))
    Next cell
    Application.ScreenUpdating = True
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 15.10.2009, 15:47   #10
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Я сделал по другому
Код:
Sub test()

        kol = 15
    Dim cell As Range: Application.ScreenUpdating = False
  For Each cell In Range([A1], Range("A" & Rows.Count).End(xlUp)).Cells
 
    cell.Cells(kol, 1).Next = Val(Replace(Split(cell, "=")(1), ",", "."))
    cell.Cells(kol, 1).Next.Next.Next = Val(Replace(Split(cell, "=")(2), ",", "."))
  kol = kol + 1
   Next cell
End Sub
Aleksandr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вырезать из строки string слово sasha1993 Общие вопросы Delphi 3 24.07.2009 22:11
Возможно ли удалить, вырезать, определенную строку в TMemo Des Компоненты Delphi 2 28.04.2009 16:21
Вырезать имя файла froggy Общие вопросы Delphi 9 06.04.2008 09:45
Как вырезать Bitmap2 из Bitmap1 ??? Altera Мультимедиа в Delphi 3 07.03.2008 21:05