Автор Тема: Задачка для тех,кто разбирается в MS Excel  (Прочитано 2077 раз)

0 Пользователей и 1 Гость просматривают эту тему.

нерв

  • Гость
#0: 24 Февраля 2004, 01:27:31
Как сделать так,чтобы в заголовках столбцов были не буквы A,B,C,D и т.д.,а цифры-1,2,3, и у порядковых номеров строк. Дело в том,что все было нормально, но потом вдруг-вместо порядковых чисел, там, где заголовки столбцов-порядковые  буквы!Куда человек мог \"не туда нажать\",что так вышло?(я этим компом не пользуюсь,просто автоматизирую товарный учет в Excel)

Maxim

  • Гость
#1: 24 Февраля 2004, 02:03:33
2 нерв
Очень просто. Сейчас у меня стоит MS Excel 2003 в нем это делается так (но в прежних версиях насколько я помню - также):

Меню \"Сервис\" -  пунк \"Параметры\" -  закладка \"Общие\" и поставить галочку напротив \"Стиль ссылок R1C1\". И на этом все!

нерв

  • Гость
#2: 24 Февраля 2004, 05:03:49
Получилось!Спасибо большое

AlexD

  • ***
  • Сообщений: 1456
    • Просмотр профиля
#3: 17 Ноября 2017, 12:35:05
Кто силен в макросах подскажите...

- даны две таблице
- в первой указанна начальная и конечная дата
- во второй указана цена за день
Необходим макрос который будет исходя из начальной и конечной даны высчитывать количество дней и умножать на цену. В итоги мы будем получать стоимость и записывать результат в соответствующую ячейку..

p_b

  • ***
  • Сообщений: 5914
    • Просмотр профиля
#4: 17 Ноября 2017, 12:37:04
AlexD, зачем макрос? обычная формула же. (дата1-дата2)*цена

AlexD

  • ***
  • Сообщений: 1456
    • Просмотр профиля
#5: 17 Ноября 2017, 12:42:40
AlexD, зачем макрос? обычная формула же. (дата1-дата2)*цена

Это понятно, но не я писал требования к заданию. А там сказана кнопулька с макросом и неипёт...

DVAlin

  • ***
  • Сообщений: 2737
    • Просмотр профиля
#6: 17 Ноября 2017, 13:12:20
Приведи пример хотя бы скриншотами.
А то обычно при таких просьбах получается не то, что просят по несколько раз, пока добьёшься актуальной постановки :)

AlexD

  • ***
  • Сообщений: 1456
    • Просмотр профиля
#7: 17 Ноября 2017, 14:17:24
Приведи пример хотя бы скриншотами.

В этой таблицы берём Стоимость



В этой начальную и конечную дату




Связь между таблицами по столбцам Код вида.

Возле Запрос 2 прикручу кнопку с макросом, которая будет рассчитывать стоимость и вносить в таблицу Стоимость заказа

DVAlin

  • ***
  • Сообщений: 2737
    • Просмотр профиля
#8: 17 Ноября 2017, 15:20:04
Задачка не так тривиальна, как кажется.
Формулами можно, только если таблицы статичны по размеру.
Если же нет - начинается интересное в виде плясок с определением последней заполненной строки :)
Excel настолько суров, что те ~5 способов, которые он предлагает - работают криво и неочевидно.

Я с этим как-то сталкивался, убил день, решил, но больше неохота возиться.
Алгоритм такой - ищешь в диапазоне, который занимает первая таблица последнюю строку, бежишь до неё, для каждой строки ищешь во второй таблице код и вычисляешь, что надо.

По поиску последней ячейки даю наводку:
    Dim l&
    l = Sheets("Лист 1").Cells.Find("*", [a1], xlFormulas, 1, 1, 2).Row + 1


DVAlin

  • ***
  • Сообщений: 2737
    • Просмотр профиля
#9: 17 Ноября 2017, 18:06:26
Написал сейчас на коленке, перфекционизм отключил :)
Sub calc()
    Dim v_days As Integer
    Dim v_price As Double
   
    Dim v_tab1 As Range, i&
   
    Set v_tab1 = Sheets("Лист2").Cells.Find("*", [B1], xlFormulas, 1, 1, 2)

    For i = 1 To v_tab1.Row
        Set v_occ = Sheets("Лист2").Range("L:L").Find(Sheets("Лист2").Cells(i, 5), [L1], xlFormulas)
        v_days = DateDiff("d", Sheets("Лист2").Cells(i, 2).Text, Sheets("Лист2").Cells(i, 3).Text)
        v_price = v_occ.Offset(0, 1).Text
        Sheets("Лист2").Cells(i, 6).Value2 = v_days * v_price
    Next
End Sub

Тестовые таблички набил из первого скрина 6 колонок, начиная со столбца А; из второго скрина две колонки, начиная со столбца L (код и цену)

p_b

  • ***
  • Сообщений: 5914
    • Просмотр профиля
#10: 17 Ноября 2017, 18:23:24
начинается интересное в виде плясок с определением последней заполненной строки
а     IsEmpty(Cells(x, 1)) = False не работает?

я просто с макросами вообще дела почти не имел. с этой функцией попробовал, вроде работает.


p_b

  • ***
  • Сообщений: 5914
    • Просмотр профиля
#11: 17 Ноября 2017, 18:24:46
а, понял. наверно имеется ввиду, что где то есть пустая строка?

cdne47

  • ***
  • Сообщений: 1494
    • Просмотр профиля
#12: 05 Января 2018, 00:06:08
p_b,
а, понял. наверно имеется ввиду, что где то есть пустая строка?
Наоборот,значение false этого стйтмента говорит что поля x,1 не пустые
https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/isempty-function
Вот здесь инфа есть