Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 2)

Модерирует : gyra, Maz

Widok (17-05-2007 19:48): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Просьба к посетителям топика дополнять шапку наиболее часто задаваемыми вопросами со ссылками на ответы в обязательном порядке

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно
  • Надстройки "Сумма прописью"
  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format
     
     
    Предыдущие ветки топика: Часть 1 |
     
    Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.
     
    При необходимости выложить скриншот пользуйтесь сервисом ImageShack® (ограничение на размер файла <1.5 Mb)

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 15:32 01-04-2006 | Исправлено: Maz, 22:45 24-02-2017
    Dixi257



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenfox
    До создания документа:
    Меню - Сервис - Парамеры - Общие - Стандарный шрифт
    После создания документа, только - выделить все...

    Всего записей: 128 | Зарегистр. 24-08-2005 | Отправлено: 17:35 12-04-2006
    pikvvik



    Мастер-библиотекарь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2 greenfox
    На первом листе нажмите кнопку выделить все.
    Удерживая Shift щелкните левой кнопкой мыши на ярлычке последнего листа
    И далее так, как Вы уже делали...


    ----------
    Google - страшная сила!

    Всего записей: 3706 | Зарегистр. 30-11-2004 | Отправлено: 17:41 12-04-2006
    olskrip

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плз., как заставить макрос VB повторяться заданное количество раз?

    Всего записей: 1 | Зарегистр. 13-04-2006 | Отправлено: 14:46 13-04-2006
    Alexdon

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    удалено

    Всего записей: 89 | Зарегистр. 23-09-2002 | Отправлено: 15:16 13-04-2006 | Исправлено: Alexdon, 15:18 13-04-2006
    Mantisby



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, как значение ячеек одного столбца сделать комментариями к соотв ячейкам другого столбца?

    Всего записей: 2232 | Зарегистр. 25-01-2005 | Отправлено: 18:37 15-04-2006
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mantisby
    Макросом. В простейшем случае:
    Код:
    Dim Col1 As Integer, Col2 As Integer
     
    Col1 = 1 ' столбец, к ячейкам которого нужно добавлять коментарии
    Col2 = 2 ' столбец с текстом коментариев
     
    For i = 1 To 10
      With ActiveWorkbook.ActiveSheet
        .Cells(i, Col1).AddComment
        .Cells(i, Col1).Comment.Text Text:=.Cells(i, Col2).Text
      End With
    Next i


    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 19:38 15-04-2006 | Исправлено: Troitsky, 19:41 15-04-2006
    Mantisby



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky

    Код:
    Sub comment()
     Dim Col1 As Integer, Col2 As Integer
     
    Col1 = B
    Col2 = N
     
    For i = 2 To 250
      With ActiveWorkbook.ActiveSheet
        .Cells(i, Col1).AddComment
        .Cells(i, Col1).comment.Text Text:=.Cells(i, Col2).Text
      End With
    Next i
    End Sub

     
    выдает 1004 ошибку

    Всего записей: 2232 | Зарегистр. 25-01-2005 | Отправлено: 22:54 15-04-2006
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mantisby

    Цитата:
    выдает 1004 ошибку

     
    А вот это что такое?

    Цитата:
    Col1 = B  
    Col2 = N

    Тип же целого поставлен. Цифрами нужно задавать.
     
    Добавлено:

    Код:
    Col1 = 2  
    Col2 = 14



    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 22:56 15-04-2006
    Mantisby



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    то, что надо, большое спасибо
     
    ещё маленький вопрос, можно ли комментариям сразу зада вать размер - в идеале N по ширине и по размеру текста по вертикали?

    Всего записей: 2232 | Зарегистр. 25-01-2005 | Отправлено: 00:17 16-04-2006
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mantisby

    Цитата:
    можно ли комментариям сразу зада вать размер - в идеале N по ширине и по размеру текста по вертикали?

    Не знаю понял ли вопрос правильно.
    Для задания автоматического размера примечанию можно использовать такой код:
    Код:
        .Cells(i, Col1).Comment.Shape.TextFrame.AutoSize = True

    Для принудительного присвоения значения высоты и ширины примечания можно использовать такой код:
    Код:
        .Cells(i, Col1).Comment.Shape.Height = 50 ' высота
        .Cells(i, Col1).Comment.Shape.Width = 150 ' ширина
    Только так сразу не соображу какие единицы измерения тут используются, но, сдается мне, что не пиксели. Тут подумать нужно.
     
    Чтобы задать примечанию определенную ширину, а высота получилась ровно по высоте его заполнения текстом, придется либо придумывать хитрую комбинацию из описанных свойств (не уверен, что вообще получится), либо пытаться сделать это с помощью WinAPI. Хотя, думаю, овчинка выделки не стоит.

    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 13:17 16-04-2006
    Mantisby



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    смысл в том, что в комментарий загоняется описание к фильму, и дефолтный размер (50х50) ессно не устраивает. Не руками же его  менять
     

    Цитата:
      .Cells(i, Col1).Comment.Shape.TextFrame.AutoSize = True

    не катит, все в одну строку получается
     
     
    Какие проблемы нашел:
     
    а) макрос не переписывает уже существующие комментарии. След-но, в начале надо удалить уже существующие.
    б) Почему-то в комментарий заносятся только первые 1024 символа это грустно.
    в) как все три действия (удаление старого, добавление нового и установление размера) оформить одним макросом?
     
    з.ы. Сорри за возможно простые вопросы, но я в не шарю в этом деле

    Всего записей: 2232 | Зарегистр. 25-01-2005 | Отправлено: 17:20 16-04-2006
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    все в одну строку получается

    Так точно.

    Цитата:
    в комментарий заносятся только первые 1024 символа

    Можед быть это ограничение самого Excel'я?

    Цитата:
    как все три действия (удаление старого, добавление нового и установление размера) оформить одним макросом?

    Про установление размера я уже говорил, затрудняюсь желаемое реализовать, а в остальном:
    Код:
    Dim Col1 As Integer, Col2 As Integer
     
    Col1 = 1 ' столбец, к ячейкам которого нужно добавлять коментарии
    Col2 = 2 ' столбец с текстом коментариев
     
    For i = 1 To 10
      With ActiveWorkbook.ActiveSheet
        .Cells(i, Col1).ClearComments
        .Cells(i, Col1).AddComment (.Cells(i, Col2).Text)
        .Cells(i, Col1).Comment.Shape.Height = 150 ' высота
        .Cells(i, Col1).Comment.Shape.Width = 250 ' ширина
      End With
    Next i


    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 18:04 16-04-2006
    Mantisby



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky

    Цитата:
    Можед быть это ограничение самого Excel'я?

    ты имеешь в виду ограницения макроса? Потому что в комментарий руками можно сколько угодно символов засунуть.
     

    Цитата:
    Про установление размера я уже говорил

    можно ограничиться фиксированными размерами
     

    Цитата:
    а в остальном:

    большое спасибо!
     
    Добавлено:
    Troitsky
    по ресайзу нашел следующее решение http://www.contextures.com/xlcomments03.html#Resize
     
    ищу по поводу 1024 символов...
     
    Добавлено:
    нашел. Надо передавать не Text а Value. Только при этом не должно быть пустых ячеек.
     
    поэтому очередной вопрос Как сделать проверку пустых яччек, если в ячейке пусто, то комментарий не добавляется?

    Всего записей: 2232 | Зарегистр. 25-01-2005 | Отправлено: 18:15 16-04-2006
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mantisby

    Цитата:
    ищу по поводу 1024 символов...

    Поэкспериментировал я тут на эту тему. Можно видимо и программно добавить примечание больше чем в 1024 символа, только делать это нужно в несколько проходов, добавляя текст частями меньшими, чем 1024 символа.
    Проблема в другом: известно, что в ячейке может находиться до 32767 символов, но в ячейке отображаются только 1024 символа. Так вот свойство Text ячейки также возвращает только первые 1024 символа, которые макросом в комментарий и добавляются.
    В какую сторону тут хитрить, чтобы обмануть Excel, нужно думать. Стоит ли?
     
    Добавлено:

    Цитата:
    нашел. Надо передавать не Text а Value. Только при этом не должно быть пустых ячеек.

    Да не в этом дело. даже использование:
    Код:
    CStr(.Cells(i, Col2).Value)
    не решает проблему больших комментариев.
     
    Добавлено:
    Mantisby
    Во как получилось.
    Код:
    Dim Col1 As Integer, Col2 As Integer
    Dim strText As String
    Dim intC As Integer
     
    Col1 = 1 ' столбец, к ячейкам которого нужно добавлять коментарии
    Col2 = 2 ' столбец с текстом коментариев
     
    For i = 1 To 10
      With ActiveWorkbook.ActiveSheet
        strText = CStr(.Cells(i, Col2).Value)
        If Len(.Cells(i, Col2).Text) <> 0 Then
          .Cells(i, Col1).ClearComments
          intC = Fix(Len(strText) / 200)
          For j = 0 To intC
            If j = 0 Then
              .Cells(i, Col1).AddComment Mid(strText, j * 200 + 1, 200)
            Else
              .Cells(i, Col1).Comment.Text Start:=j * 200, Text:=Mid(strText, j * 200 + 1, 200)
            End If
          Next j
          .Cells(i, Col1).Comment.Shape.Height = 250 ' высота
          .Cells(i, Col1).Comment.Shape.Width = 250 ' ширина
        End If
      End With
    Next i

    Кривенько, но напильником доработать можно
    Приделай только ресайз, который нашел, и все должно быть чики-пуки

    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 19:22 16-04-2006
    Mantisby



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    так мне же не для промышленного использования главное, что работает.
     
    спасибо огромное!
     
    Добавлено:

    Цитата:
    не решает проблему больших комментариев.

    я в этом смыслю немного, но вот такой код работал
     

    Код:
    Sub comment()
    rij = 2
    Do Until rij = 7
    With Sheets("All").Range(Cells(rij, 2), Cells(rij, 2))
    .ClearComments
    .AddComment Text:=.Parent.Range(Cells(rij, 14), Cells(rij, 14)).Value
    End With
    rij = rij + 1
    Loop
     
    End Sub

    Всего записей: 2232 | Зарегистр. 25-01-2005 | Отправлено: 20:25 16-04-2006 | Исправлено: Mantisby, 20:29 16-04-2006
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Знатоки.
    Помогите пожалуйста.
    Пытаюсь воспользоваться функцией ЕСЛИ
    до 1350             - 8%
    1350-16200       -13%
    больше 16200   -20%
     
    =ЕСЛИ(C14<1350;8;ЕСЛИ())
     
    А как быть дальше ?
    Незнаю как придумать логическое выражение
    >=1350 но <=16200
     
    Как быть ?

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 23:02 16-04-2006
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    =ЕСЛИ(C14<1350;8;ЕСЛИ(C14<=16200;13;20))

    Всего записей: 22843 | Зарегистр. 19-01-2002 | Отправлено: 23:14 16-04-2006
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mushroomer
    Спасибо.
     
    Есть ещё проблемка.
    По умолчанию в экселе когда выделяешь ячейки то снизу подсчитывается их сумма и пишет сумма.
     
    А теперь пишет среднее. Как исправить обратно ?

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 18:50 17-04-2006
    Mady

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech

    Цитата:
    Есть ещё проблемка.  
    По умолчанию в экселе когда выделяешь ячейки то снизу подсчитывается их сумма и пишет сумма.  
     
    А теперь пишет среднее. Как исправить обратно ?

    Нажать правую клавишу мышки в окошке, где показывается сумма, и выбрать "сумма".

    Всего записей: 82 | Зарегистр. 08-02-2003 | Отправлено: 19:11 17-04-2006
    Minoz



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хм.. Есть ли аналог функции =СУММЕСЛИ, но для работы с текстом. Например, нужно просмотреть диапозон А1:А100, на предмет совпадения с ячейкой В1, и при совпадении "отобразить" текст из ячейки С1

    Всего записей: 794 | Зарегистр. 22-11-2004 | Отправлено: 19:15 17-04-2006
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 2)
    Widok (17-05-2007 19:48): лимит страниц. продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru