Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual Basic
Перезагрузить страницу Кто может помочь с excel ?
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
imported_Vadimus imported_Vadimus вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.06.2007
По умолчанию 20.06.2007, 15:03

Задачка вроде простая...
Где-то видел пример макроса как это делается, но не помню где и как...

есть 2 столбца: "Материал" и "Габаритные размеры"
формат ячеек: [текст] [три числа, разделённых через "x"]
нужно: перемножить три числа из ячейки "Габаритные размеры" и в зависимости от значения
ячейки "Материал" умножить на четвёртое число (плотность)

(не знаю как макросом вытащить ТРИ числа из ячейки...)
Ответить с цитированием
  (#2 (permalink)) Старый
Vikar Vikar вне форума
Member
 
Сообщений: 50
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.06.2006
По умолчанию 20.06.2007, 16:37

Пусть (к примеру) габаритные размеры в ячейке (1,2) (первая строка второй столбец) и разделитель - маленькая латинская x (для русской х или больших латинской и русской ХХ надо изменить условия нахождения позиции соответственно)

Тогда можно так:
Код:
Public Sub Extract()
Dim a As Single, b As Single, c As Single
Dim s As String
Dim n1 As Integer, n2 As Integer
    s = Cells(1, 2)
    n1 = InStr(s, "x")
    n2 = InStr(n1 + 1, s, "x")
    a = Val(Mid(s, 1, n1 - 1))
    b = Val(Mid(s, n1 + 1, n2 - 1))
    c = Val(Mid(s, n2 + 1))
End Sub
Ответить с цитированием
  (#3 (permalink)) Старый
diment diment вне форума
Member
 
Сообщений: 227
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.07.2006
По умолчанию 21.06.2007, 11:03

не знаю зачем макросом, если это можно сделать через обычные формулы:
возьмем 2 таблицы
1-я
Материал Габириты (см) Масса кг
Кокс 2х8х12 0,250
Колчедан 46х36х40 331,200
Кожа 14х23х6 1,662
Литье 8х50х28 33,600
Мел 49х42х45 203,742
Мрамор 52х48х46 298,522
Парафин 28х7х47 8,291
Паронит 7х35х25 7,350
Песок 6х35х3 0,945
Пробка 28х22х36 5,322
Резина 37х34х13 24,531
2-я
Материал Плотность, кг/м3
Алебастр 2500
Асбест 2600
Кокс 1300
Колчедан 5000
Кожа 860
Литье 3000
Мел 2200
Мрамор 2600
Парафин 900
Паронит 1200

представим что обе таблицы начинаются со столбца А, тогда расчет массы буде производиться по формуле
=ЗНАЧЕН(ЛЕВСИМВ(B2;ПОИСК("х";B2;1)-1))*ЗНАЧЕН(ЗАМЕНИТЬ(ПСТР(B2;ПОИСК("х";B2;1)+1;5);П ОИСК("х";ПСТР(B2;ПОИСК("х";B2;1)+1;5);1);5;""))*ЗН АЧЕН(ПСТР(ПРАВСИМВ(B2;3);ПОИСК("х";ПРАВСИМВ(B2;3); 1)+1;3))*ВПР(A2;Плотности!A:B;2;0)/1000000
Ответить с цитированием
  (#4 (permalink)) Старый
Vikar Vikar вне форума
Member
 
Сообщений: 50
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.06.2006
По умолчанию 21.06.2007, 12:05

diment это здорово и реально работает (только забыл добавить плотности песка резины и пробки). Не сказать, что не знаком с возможностями Excel, но формула впечатляет (но мозги набекрень сносит). По мне легче написать макрос, хотя пришлось бы все равно использовать поиск в таблице плотностей (чтобы не изобретать велосипед).
Ответить с цитированием
  (#5 (permalink)) Старый
imported_Vadimus imported_Vadimus вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.06.2007
По умолчанию 21.06.2007, 13:51

Спасибо больше!!!
оказывается всё проще чем я себе представлял


(а макрос нужен был для того, чтоб добывить его в основной код чтоб произвести подсчёт материалов из спецификации)
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
diment diment вне форума
Member
 
Сообщений: 227
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.07.2006
По умолчанию 21.06.2007, 14:15

vikar это только фрагменты таблиц - в таблице что я подготовил есть плотность и песка и резины и пробки и еще десятки наименований. просто не умею я их прикреплять к сообщению на этом форуме
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кто может помочь научится поскальзываться Deduktorom? lyusi4k Офтопик 0 21.05.2011 21:04
что может быть подскажите?проблема может с перегревом? санька ебург Процессоры 7 30.09.2010 13:04
Прошу помочь mena519 Материнские платы 8 07.09.2010 21:34
Кто может помочь с непонятной задачкой Dixx Prolog 8 11.04.2010 23:42
Реализация свойств - чем может помочь новый Стандарт winamp С/С++ 45 02.03.2010 17:47
Прошу помочь! lexus Подбор комплектующих 22 16.02.2010 15:25
кто нибудь может помочь с проблемой goshe65 Операционная система Windows 6 16.10.2008 12:13
При завершении работы приложение не может закрыться, в чем может быть причина? Екатерина777 Любые вопросы от новичков 1 03.08.2008 20:06
Кто может помочь с ремонтом жесткого диска? Vova-777 Любые вопросы от новичков 3 23.05.2008 23:14
Кто мне может помочь? Виталик 1 Офтопик 7 05.05.2007 07:39
Не сохраняется файл в Excel XP после сохранения в Excel 2003 AleksME Visual Basic 0 13.09.2005 17:15
Как заставить работать проект Excel 2002 в Excel 20023? Alex25 Visual Basic 3 21.07.2005 01:03



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов