Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/расчитать внутри макроса,вставить значения (без допстолбцов) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » расчитать внутри макроса,вставить значения (без допстолбцов) (Макросы/Sub)
расчитать внутри макроса,вставить значения (без допстолбцов)
Gjlhzl Дата: Вторник, 24.10.2023, 17:36 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

Вечер добрый, подскажите пожалуйста как в таблице столбец перемножить на число из столбца "ед.изм." и вставить значения
а в самом столбце оставить ед. изм без числа
в примере показано, как хочется что было (формула в файле которой думал воспользоваться)
К сообщению приложен файл: primer.xlsb (10.1 Kb)
 
Ответить
СообщениеВечер добрый, подскажите пожалуйста как в таблице столбец перемножить на число из столбца "ед.изм." и вставить значения
а в самом столбце оставить ед. изм без числа
в примере показано, как хочется что было (формула в файле которой думал воспользоваться)

Автор - Gjlhzl
Дата добавления - 24.10.2023 в 17:36
gling Дата: Вторник, 24.10.2023, 22:11 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2521
Репутация: 675 ±
Замечаний: 0% ±

2010
Здравствуйте.
Вариант в файле
Код
=ПСТР(Таблица1[@[Ед.изм.]];ПОИСК(" ";Таблица1[@[Ед.изм.]];1)+1;5)
Код
=ЛЕВБ(Таблица1[@[Ед.изм.]];ПОИСК(" ";Таблица1[@[Ед.изм.]];1))*Таблица1[@[Кол-во]]
К сообщению приложен файл: 7404768.xlsb (9.8 Kb)


ЯД-41001506838083
 
Ответить
СообщениеЗдравствуйте.
Вариант в файле
Код
=ПСТР(Таблица1[@[Ед.изм.]];ПОИСК(" ";Таблица1[@[Ед.изм.]];1)+1;5)
Код
=ЛЕВБ(Таблица1[@[Ед.изм.]];ПОИСК(" ";Таблица1[@[Ед.изм.]];1))*Таблица1[@[Кол-во]]

Автор - gling
Дата добавления - 24.10.2023 в 22:11
Gjlhzl Дата: Вторник, 24.10.2023, 22:32 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

gling, извините возможно не правильно поставил задачу...
весь прикол в том что таблица создается макросом из других файлов с таблицами, после хочу макросом ее "причесать"...
вот и подумал как добавить в макрос что бы столбцы ед изм и кол-во приняли такой вид..думал что бы в макросе расчитать формулами и подставить значения в эти же столбцы если возможно так?
 
Ответить
Сообщениеgling, извините возможно не правильно поставил задачу...
весь прикол в том что таблица создается макросом из других файлов с таблицами, после хочу макросом ее "причесать"...
вот и подумал как добавить в макрос что бы столбцы ед изм и кол-во приняли такой вид..думал что бы в макросе расчитать формулами и подставить значения в эти же столбцы если возможно так?

Автор - Gjlhzl
Дата добавления - 24.10.2023 в 22:32
Serge_007 Дата: Вторник, 24.10.2023, 22:43 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
макросом возможно так?
Возможно:[vba]
Код
Sub Gjlhzl()
Dim rR As Range
    For Each rR In Range("a2:a10")
        rR.Offset(0, 1) = rR.Offset(0, 1) * Left(rR, WorksheetFunction.Find(" ", rR) - 1)
        rR = Mid(rR, WorksheetFunction.Search(" ", rR) + 1, 2)
    Next rR
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
макросом возможно так?
Возможно:[vba]
Код
Sub Gjlhzl()
Dim rR As Range
    For Each rR In Range("a2:a10")
        rR.Offset(0, 1) = rR.Offset(0, 1) * Left(rR, WorksheetFunction.Find(" ", rR) - 1)
        rR = Mid(rR, WorksheetFunction.Search(" ", rR) + 1, 2)
    Next rR
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 24.10.2023 в 22:43
Gjlhzl Дата: Вторник, 24.10.2023, 22:52 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, замечательно....спасибо
а если диапазон таблицы не определен? и как будет выглядеть формула если в ед.изм будет 100м2 - бкз пробела между числом и текстом?


Сообщение отредактировал Gjlhzl - Вторник, 24.10.2023, 23:00
 
Ответить
СообщениеSerge_007, замечательно....спасибо
а если диапазон таблицы не определен? и как будет выглядеть формула если в ед.изм будет 100м2 - бкз пробела между числом и текстом?

Автор - Gjlhzl
Дата добавления - 24.10.2023 в 22:52
Serge_007 Дата: Вторник, 24.10.2023, 23:12 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
если диапазон таблицы не определен?
Тогда придется его определить

как будет выглядеть формула
По другому


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
если диапазон таблицы не определен?
Тогда придется его определить

как будет выглядеть формула
По другому

Автор - Serge_007
Дата добавления - 24.10.2023 в 23:12
Gjlhzl Дата: Вторник, 24.10.2023, 23:18 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, я так и думал...)
 
Ответить
СообщениеSerge_007, я так и думал...)

Автор - Gjlhzl
Дата добавления - 24.10.2023 в 23:18
Serge_007 Дата: Вторник, 24.10.2023, 23:21 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Думать мало, надо ещё и делать)

Перечитывайте правила форума, особенно в части файла-примера


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеДумать мало, надо ещё и делать)

Перечитывайте правила форума, особенно в части файла-примера

Автор - Serge_007
Дата добавления - 24.10.2023 в 23:21
Gjlhzl Дата: Вторник, 24.10.2023, 23:56 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, это понятно...
хорош делать, когда знаешь...сам не справлюсь,
и макрос останавливается если в ед изм попадается ед изм без числа.....
подкорректируйте код пожалуйста


Сообщение отредактировал Gjlhzl - Среда, 25.10.2023, 00:24
 
Ответить
СообщениеSerge_007, это понятно...
хорош делать, когда знаешь...сам не справлюсь,
и макрос останавливается если в ед изм попадается ед изм без числа.....
подкорректируйте код пожалуйста

Автор - Gjlhzl
Дата добавления - 24.10.2023 в 23:56
Serge_007 Дата: Среда, 25.10.2023, 11:34 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Повторяю:
Перечитывайте правила форума, особенно в части файла-примера
Нужны абсолютно ВСЕ варианты написания единиц измерения


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПовторяю:
Перечитывайте правила форума, особенно в части файла-примера
Нужны абсолютно ВСЕ варианты написания единиц измерения

Автор - Serge_007
Дата добавления - 25.10.2023 в 11:34
Gjlhzl Дата: Среда, 25.10.2023, 12:26 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, извиняюсь. подправил пример. короче на любое число перед текстом (с пробелом или без) числа в столбце кол-во * на него, столбец ед. расценка / на него
К сообщению приложен файл: 0466510.xlsb (14.9 Kb)
 
Ответить
СообщениеSerge_007, извиняюсь. подправил пример. короче на любое число перед текстом (с пробелом или без) числа в столбце кол-во * на него, столбец ед. расценка / на него

Автор - Gjlhzl
Дата добавления - 25.10.2023 в 12:26
msi2102 Дата: Среда, 25.10.2023, 12:58 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 413
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Попробуйте UDF
[vba]
Код
Public Function EDIZM(Text As String, ed As Byte)
    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = "(\d+)(.+)"
    re.Global = True
    If re.test(Text) Then EDIZM = Trim(re.Execute(Text)(0).submatches(ed))
End Function
[/vba]
или такой формулой, массивная
для значений
Код
=--ЛЕВСИМВ(A16;ПОИСКПОЗ(ИСТИНА;ЕОШИБКА(ПСТР(СЖПРОБЕЛЫ(A16);СТРОКА($1:$10);1)*1);0)-1)

для ед.измерений
Код
=СЖПРОБЕЛЫ(ПРАВСИМВ(A16;ДЛСТР(СЖПРОБЕЛЫ(A16))-ПОИСКПОЗ(ИСТИНА;ЕОШИБКА(ПСТР(СЖПРОБЕЛЫ(A16);СТРОКА($1:$10);1)*1);0)+1))
К сообщению приложен файл: 6321962.xlsb (17.4 Kb)


Сообщение отредактировал msi2102 - Среда, 25.10.2023, 13:33
 
Ответить
СообщениеПопробуйте UDF
[vba]
Код
Public Function EDIZM(Text As String, ed As Byte)
    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = "(\d+)(.+)"
    re.Global = True
    If re.test(Text) Then EDIZM = Trim(re.Execute(Text)(0).submatches(ed))
End Function
[/vba]
или такой формулой, массивная
для значений
Код
=--ЛЕВСИМВ(A16;ПОИСКПОЗ(ИСТИНА;ЕОШИБКА(ПСТР(СЖПРОБЕЛЫ(A16);СТРОКА($1:$10);1)*1);0)-1)

для ед.измерений
Код
=СЖПРОБЕЛЫ(ПРАВСИМВ(A16;ДЛСТР(СЖПРОБЕЛЫ(A16))-ПОИСКПОЗ(ИСТИНА;ЕОШИБКА(ПСТР(СЖПРОБЕЛЫ(A16);СТРОКА($1:$10);1)*1);0)+1))

Автор - msi2102
Дата добавления - 25.10.2023 в 12:58
Gjlhzl Дата: Среда, 25.10.2023, 13:40 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

msi2102, и как этим пользоваться?
 
Ответить
Сообщениеmsi2102, и как этим пользоваться?

Автор - Gjlhzl
Дата добавления - 25.10.2023 в 13:40
msi2102 Дата: Среда, 25.10.2023, 13:43 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 413
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
и как этим пользоваться?
Смотрите файл пример. А в целом, я не понимаю Вашего вопроса, Вы разместили тему на ветке "Вопросы по VBA", значит как минимум должны иметь об этом представление. Ну а если и с формулами проблема, то я умываю руки :)


Сообщение отредактировал msi2102 - Среда, 25.10.2023, 15:02
 
Ответить
Сообщение
и как этим пользоваться?
Смотрите файл пример. А в целом, я не понимаю Вашего вопроса, Вы разместили тему на ветке "Вопросы по VBA", значит как минимум должны иметь об этом представление. Ну а если и с формулами проблема, то я умываю руки :)

Автор - msi2102
Дата добавления - 25.10.2023 в 13:43
Gjlhzl Дата: Среда, 25.10.2023, 15:03 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

msi2102, а как эту функцию "EDIZM" записать в макрос что бы , в макросе бралось значение ячейки столбца Ед. изм. допустим 100м2, расчитывалось в функции и после в эту же ячейку записывалось уже значение м2
 
Ответить
Сообщениеmsi2102, а как эту функцию "EDIZM" записать в макрос что бы , в макросе бралось значение ячейки столбца Ед. изм. допустим 100м2, расчитывалось в функции и после в эту же ячейку записывалось уже значение м2

Автор - Gjlhzl
Дата добавления - 25.10.2023 в 15:03
msi2102 Дата: Среда, 25.10.2023, 15:18 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 413
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
а как эту функцию "EDIZM" записать в макрос что бы
Я Вас не понимаю, Вы файл открывали? В файле уже всё сделано, желтые ячейки с помощью UDF (пользовательская функция), а оранжевые с помощью формул. Задайте эти формулы в соседних ячейка потом скопируйте и вставьте значения. Если Вам нужно просто поменять значения в этих ячейках, то перепишите эту UDF в обычную процедуру, добавьте цикл по всем ячейкам и будет Вам счастье, но я бы на Вашем месте не стал этого делать, т.к. если произойдет где-то ошибка, то Вы уже ничего не сможете откатить назад, только закрывать без сохранения или сохранять файл под другим именем.
PS Эти функции будут работать при условии (см. Ваш файл с примером), что вначале идёт число, если будет просто "м2", то будет ошибка
К сообщению приложен файл: 2026578.xlsb (17.4 Kb)


Сообщение отредактировал msi2102 - Среда, 25.10.2023, 15:22
 
Ответить
Сообщение
а как эту функцию "EDIZM" записать в макрос что бы
Я Вас не понимаю, Вы файл открывали? В файле уже всё сделано, желтые ячейки с помощью UDF (пользовательская функция), а оранжевые с помощью формул. Задайте эти формулы в соседних ячейка потом скопируйте и вставьте значения. Если Вам нужно просто поменять значения в этих ячейках, то перепишите эту UDF в обычную процедуру, добавьте цикл по всем ячейкам и будет Вам счастье, но я бы на Вашем месте не стал этого делать, т.к. если произойдет где-то ошибка, то Вы уже ничего не сможете откатить назад, только закрывать без сохранения или сохранять файл под другим именем.
PS Эти функции будут работать при условии (см. Ваш файл с примером), что вначале идёт число, если будет просто "м2", то будет ошибка

Автор - msi2102
Дата добавления - 25.10.2023 в 15:18
Gjlhzl Дата: Среда, 25.10.2023, 16:51 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 110
Репутация: 0 ±
Замечаний: 0% ±

msi2102, спасибо за помощь
 
Ответить
Сообщениеmsi2102, спасибо за помощь

Автор - Gjlhzl
Дата добавления - 25.10.2023 в 16:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » расчитать внутри макроса,вставить значения (без допстолбцов) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!