Ответить
  • DimetriX Member
    офлайн
    DimetriX Member

    314

    18 лет на сайте
    пользователь #44970

    Профиль
    Написать сообщение

    314
    # 19 апреля 2007 18:12

    Уважаемые знатоки, помогите с такой вещью.

    Имеем макрос который находит все картинки на листе и удаляет их.


    ActiveSheet.Shapes.SelectAll

    Selection.Delete

    Все замечательно работает, если этих картинок не очень много, но вот если много, то программа пишет, что не хватает памяти.

    Может кто-нибудь доработать этот макрос так, чтобы он не сразу находил все картинки и удалял их, а находил одну, удалял ее, затем находил вторую, удалял, и т.д. ?

  • SashaR Senior Member
    офлайн
    SashaR Senior Member

    2658

    22 года на сайте
    пользователь #3519

    Профиль
    Написать сообщение

    2658
    # 20 апреля 2007 08:31

    DimetriX, можно попробовать на время выполнения отключить обновление экрана, может помочь

    Application.ScreenUpdating = False

    .....код.....

    Application.ScreenUpdating = True

    Жить хорошо, а хорошо жить еще лучше
  • DimetriX Member
    офлайн
    DimetriX Member

    314

    18 лет на сайте
    пользователь #44970

    Профиль
    Написать сообщение

    314
    # 20 апреля 2007 12:10

    SashaR, Не помогло:(

    По прежнему "Run-time error 7: Out of memory"

  • SashaR Senior Member
    офлайн
    SashaR Senior Member

    2658

    22 года на сайте
    пользователь #3519

    Профиль
    Написать сообщение

    2658
    # 20 апреля 2007 13:05

    DimetriX, вроде можно удалить по одной, не уверен что подойдет твоей задаче

    пробуй

    For Each sh In ActiveSheet.Shapes

    sh.Delete

    Next

    Жить хорошо, а хорошо жить еще лучше
  • KSIva Senior Member
    офлайн
    KSIva Senior Member

    12172

    20 лет на сайте
    пользователь #15360

    Профиль
    Написать сообщение

    12172
    # 20 апреля 2007 13:08

    DimetriX, хотя я уже лет 5 не писал макросы, но прекрасно помню. что через выделения всегода получается не очень. Попробуй удалять по одному, что-то типа:

    For Each i In ActiveSheet.Shapes

    i.Delete

    Next

    Вечно молодой, вечно пьяный...
  • KSIva Senior Member
    офлайн
    KSIva Senior Member

    12172

    20 лет на сайте
    пользователь #15360

    Профиль
    Написать сообщение

    12172
    # 20 апреля 2007 13:09

    SashaR, должно работать, раз вместе одно и тоже написали :D:super:

    Вечно молодой, вечно пьяный...
  • DimetriX Member
    офлайн
    DimetriX Member

    314

    18 лет на сайте
    пользователь #44970

    Профиль
    Написать сообщение

    314
    # 20 апреля 2007 15:20

    SashaR, KSIva, огромный респект вам! Все работает. :super:

  • ahrim Senior Member
    офлайн
    ahrim Senior Member

    2416

    19 лет на сайте
    пользователь #31977

    Профиль
    Написать сообщение

    2416
    # 20 апреля 2007 22:52

    помогите решить задачку нужно построить поверхность, заданную формулой Z = 2e в степени (0,2x)*x в степени(2)-2y в степени(4) , при условии, что x и y изменяются на интервале [-1;1] с шагом 0,1.

    трезвость - это галлюциногенное состояние организма, вызванное недостатком алкоголя в крови
  • SashaR Senior Member
    офлайн
    SashaR Senior Member

    2658

    22 года на сайте
    пользователь #3519

    Профиль
    Написать сообщение

    2658
    # 21 апреля 2007 08:35

    ahrim, а причем тут Помогите с MS Excel

    если имеется ввиду заполнить матрицу по которой построить диаграмму типа Поверхность то в чем проблема

    X вносишь в ячейки A2:A22 (от -1 до 1 с шагом 0,1)

    Y вносишь в ячейки B1:V1 (от -1 до 1 с шагом 0,1)

    в ячейку B2 пишешь формулу:

    =2*EXP(0,2*$A2)*СТЕПЕНЬ($A2;2)-2*СТЕПЕНЬ(B$1;4)

    растягиваешь ее на диапазон B2:V22 и по нему строишь диаграмму

    Жить хорошо, а хорошо жить еще лучше
  • ahrim Senior Member
    офлайн
    ahrim Senior Member

    2416

    19 лет на сайте
    пользователь #31977

    Профиль
    Написать сообщение

    2416
    # 21 апреля 2007 18:36

    SashaR, блин, я слово матрица первый раз слышу то это контрольная такая для переводчиков математику не изучающих. Спасибо попробую енто сделать

    трезвость - это галлюциногенное состояние организма, вызванное недостатком алкоголя в крови
  • Shiba Insomniac Team
    офлайн
    Shiba Insomniac Team

    5911

    22 года на сайте
    пользователь #4472

    Профиль
    Написать сообщение

    5911
    # 4 июня 2007 14:54

    Суть проблемы такова:

    При открытии файла за разную дату создания, в графе дата появляется сегодняшнее число.

    В этих файлах есть ячейка содержащая дату.

    Пару дней назад проблемы не было, а при открытии файла за любое число отличное от текущего показывалась дата правильная, совпадающая с датой создания документа.

    С сегодняшенго дня, наш эксель бес попутал, и при открытии любого файла за любую дату, эксель проставляет текущую.

  • SashaR Senior Member
    офлайн
    SashaR Senior Member

    2658

    22 года на сайте
    пользователь #3519

    Профиль
    Написать сообщение

    2658
    # 5 июня 2007 08:55

    Shiba, что-то не совсем понятно... а что это за формула в экселе, которая возвращает дату создания файла? не встречал.... :conf:

    Напиши что за формула в ячейке с датой, если возвращает текущую дату то =СЕГОДНЯ()

    Жить хорошо, а хорошо жить еще лучше
  • Shiba Insomniac Team
    офлайн
    Shiba Insomniac Team

    5911

    22 года на сайте
    пользователь #4472

    Профиль
    Написать сообщение

    5911
    # 5 июня 2007 11:26

    SashaR, Да, тоесть эта формула вписывается в каждый открытый файл.

    Хотя на месте =СЕГОДНЯ() должна стоять прошедшая дата

  • KSIva Senior Member
    офлайн
    KSIva Senior Member

    12172

    20 лет на сайте
    пользователь #15360

    Профиль
    Написать сообщение

    12172
    # 5 июня 2007 11:35

    Shiba, в самом деле, что-то ты мудришь. Еслу в ячейке нужна дата создания файла, то это формулой не сделашь, только макросом. А вообще зачем там формула? При создании файла в нужно ячейке нажимаешь Ctrl+; и все...

    Вечно молодой, вечно пьяный...
  • dikar Клуб счастливых людей
    офлайн
    dikar Клуб счастливых людей

    2587

    22 года на сайте
    пользователь #1697

    Профиль
    Написать сообщение

    2587
    # 5 июня 2007 21:59

    KSIva, а какое еще сочетание может работать для ускорения подстановки в нужную ячейку даты создания? иными словами на ноуте сочетание ctrl+; ничего не дает.

    поизвращался с нажиманием всех возможных вариантов. и с тремя кнопками и с двумя понимая + как соединительный знак. ничего...

    Пишите в ЛС.
  • SashaR Senior Member
    офлайн
    SashaR Senior Member

    2658

    22 года на сайте
    пользователь #3519

    Профиль
    Написать сообщение

    2658
    # 6 июня 2007 08:27

    dikar,

    Cочетание Ctrl + это добавление ячеек со сдвигом вниз, а вставка текущей даты это сочетание Ctrl ;

    Может Вы не так поняли KSIva ? :spy:

    Жить хорошо, а хорошо жить еще лучше
  • KSIva Senior Member
    офлайн
    KSIva Senior Member

    12172

    20 лет на сайте
    пользователь #15360

    Профиль
    Написать сообщение

    12172
    # 6 июня 2007 09:47

    SashaR, dikar, э, товарищи, учите информатику :wink: я конечно не знаю как сейчас ее преподают, но все время было, что комбинация клавиш "контрл плюс точка с запятой" означала "нажать контрл и неотпуская ее нажать точку с запятой", а "контрл точка с запятой" означало "нажать стрл, отпустить и нажать точку с запятой". Кроме того если не говорилось в какой раскладке, то по умолчанию считалась латинская.

    Сейчас по другому?

    Так что, я теперь понятно что я имел в виду указывая Ctrl+;

    А Ctrl+Shift+: - вставка текущего времени?

    Вечно молодой, вечно пьяный...
  • dikar Клуб счастливых людей
    офлайн
    dikar Клуб счастливых людей

    2587

    22 года на сайте
    пользователь #1697

    Профиль
    Написать сообщение

    2587
    # 6 июня 2007 18:41

    KSIva, лично у меня вставка даты это Ctrl+Shift+;

    неужели вы хотите сказать что это именно у меня как то по особенному работает эта вставка???

    быть может вы просто давая совет проигнорировали упоминание про ноут...

    Пишите в ЛС.
  • SashaR Senior Member
    офлайн
    SashaR Senior Member

    2658

    22 года на сайте
    пользователь #3519

    Профиль
    Написать сообщение

    2658
    # 7 июня 2007 08:40

    KSIva, правильно меня учили, и с вами я полностью согласен

    я имел ввиду что не вы неправильно поняли, а вас :beer:

    Жить хорошо, а хорошо жить еще лучше
  • KSIva Senior Member
    офлайн
    KSIva Senior Member

    12172

    20 лет на сайте
    пользователь #15360

    Профиль
    Написать сообщение

    12172
    # 7 июня 2007 10:25
    dikar:

    KSIva, лично у меня вставка даты это Ctrl+Shift+;

    неужели вы хотите сказать что это именно у меня как то по особенному работает эта вставка???

    быть может вы просто давая совет проигнорировали упоминание про ноут...

    Ctrl+Shift+; - это должно быть время.

    Ctrl+; - это должна быть дата.

    Нюансы могут быть.

    Например, для копирования информации с ячейки выше, особенно при создании однотипных списков, я пользуюсь комбинацией Ctrl+' (буква Э). так вот, на некоторых компах это не работает. Мне кажется из-за того, что при входе в Windows по умолчанию стоит русский язык. Приходится пользоваться альтернативой Ctrl+D

    А вообще мои самые популярный комбинации клавиш в Excele:

    Ctrl+Z

    Ctrl+Y

    Ctrl+Tab

    Ctrl+PgUp

    Ctrl+PgDn

    Ctrl+1

    Ctrl+Серая *

    Alt+ Стрелка вниз

    F4

    и др.

    Вечно молодой, вечно пьяный...