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

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

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

Widok (01-04-2006 15:33): лимит страниц. переезжаем сюда.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ymy



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

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

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно
  • Надстройки "Сумма прописью"
     
    Тема Excel VBA в разделе Прикладное программирование
     
     


    Вот такой вопрос у меня, помогите хто может: Как в Exсel-e ограничить число строк и колонок отображаемых на листе, точно можно, сам видел, но как?, в непонятках.

  • Всего записей: 1339 | Зарегистр. 22-04-2002 | Отправлено: 17:00 17-09-2002 | Исправлено: Maz, 22:44 24-02-2017
    Troitsky



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

    Цитата:
    которые содержат *досовские* (1251) русские буквы

    А разве кодировка 1251, а не 866?
     
    Обычным путем открытие произойдет некорректно.
    Переименуй в *.txt и при открытии выбери досовскую кирилическую кодировку и разделитель ";".
    Сохраненение Файл\Сохранить как...\CSV(MS DOS)(*.csv).
     
    или
     
    Импортировать данные нужного файла в чистую книгу:
    Данные/Импорт внешних данных/Импортировать данные...
    Метод также позволяет выбрать кодировку файла импортируемых данных.

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 01:26 24-02-2005 | Исправлено: Troitsky, 15:48 26-02-2005
    Fronton



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

    Всего записей: 312 | Зарегистр. 02-11-2002 | Отправлено: 11:45 24-02-2005
    LightImage

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BrumeL
    Что такое "в фоновом режиме" не знаю, а примерно то что нужно вот:
    Sub LI_OpenFile()
    Dim fileToOpen
    Dim fso
    Dim name As String
    Dim wb As Workbook
        fileToOpen = Application.GetOpenFilename("Excel files,*.xls,All Files,*.*")
        If fileToOpen <> False Then
            Set fso = CreateObject("Scripting.FileSystemObject")
            name = fso.GetBaseName(fileToOpen) ' Только имя, без пути и расширения
            Set wb = Workbooks.Open(fileToOpen)
        End If
    End Sub
     
    З.Ы. Проверялось на Excel 2002
    З.З.Ы. А чтоб при открытии книги работало, см. событие Open объекта Workbook.Например:
    Private Sub Workbook_Open()
     LI_OpenFile
    End Sub

    Всего записей: 2 | Зарегистр. 08-01-2005 | Отправлено: 12:31 24-02-2005 | Исправлено: LightImage, 13:00 24-02-2005
    Solenaja



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть такая удобная фишка как Alt+стрелка вниз, которая позволяет вводить данные на листе из списка.
    Знаю что можно как то сделать выбор из списка, сформированного на другом листе, а также с возможностью добавлять в этот список другие данные, но не помню как
    excel 2003
    т.е. осуществить выбор из раскрывающегося списка, который находится на другом листе и естественно может изменяться по надобности
     
    Добавлено:
    всё уже - память вернулась и разобрались с этими списками

    ----------
    Могу помочь, но только своими знаниями и ...

    Всего записей: 4246 | Зарегистр. 02-09-2001 | Отправлено: 20:36 24-02-2005 | Исправлено: Solenaja, 20:49 24-02-2005
    Fronton



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
     
    Все работает экстра но: мне нужно, чтобы когда я сохраняю в формате .cvs (ms dos) то чтобы вокруг символьных значений были бы двойные кавычки. Когда я импортирую файл - то EXCEL можно настроить таким образом, чтобы понимать кавычки вокруг символьных полей. но на экспорт такой возможности (заставить EXCEL писать двойные кавычки вокруг символьных полей) я не смог найти.  

    Всего записей: 312 | Зарегистр. 02-11-2002 | Отправлено: 22:10 24-02-2005
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Fronton
    Насколько я понимаю, явного решения нет (может кто поправит?).
    Это возможно лишь с использованием макросов.
    Пробегаешь построчно по всем используемым ячейкам и также построчно пишешь их содержимое в файл при помощи инструкции Write, не забывая при этом конвертировать в формат ДОС.

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 00:50 25-02-2005
    Fronton



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

    Всего записей: 312 | Зарегистр. 02-11-2002 | Отправлено: 12:50 25-02-2005
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Fronton
    Сейчас посмотрел, что если в тексте ячейки встречается символ ";" при сохранении листа в *.csv кавычки таки к содержимому этой ячейки добавляются.
    Можешь попробовать поиграться с форматом ячеек (во всяком случае обрамление одинарными кавычками сделать можно).
     
    Можно попробовать темже форматом в конец значения каждой текстовой ячейки дописывать сочетание символов ";_", а после того как сохранишь файл в формате *.csv удалить это сочетание примитивной заменой на пустоту. В результате получишь требуемое. Тоже выход.
    Но это все криворуко малость

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 13:33 25-02-2005
    Fronton



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
     
    А где нибудь есть описание этого самого .csv формата, я имею в виду *формальное* - типа RFC? Уж больно многие программы свободно (по моему) трактуют его.
     
    Интересная мысль. Надо поискать.
     
    Так, к слову - нашел
     
    http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm
     
    может пригодится...

    Всего записей: 312 | Зарегистр. 02-11-2002 | Отправлено: 13:40 25-02-2005 | Исправлено: Fronton, 13:58 25-02-2005
    nofate



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Solenaja
    а у тебя получилось сделать список на другом листе?
    как?
    у меня в Excel XP - только на этом же листе.

    Всего записей: 66 | Зарегистр. 09-12-2001 | Отправлено: 14:55 25-02-2005
    Solenaja



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nofate
    по формированию выпадающих списков на одном или разных листах
    1. формируешь исходный список который будет "выпадать" в ячейке
    к примеру
    111
    222
    333
    и т.д.
     
    2. присваиваешь указанному диапазону имя (Вставка - Имя - Присвоить) или сразу в панели управления прописываешь (рядом со строкой формул есть поле для этих дел). И запоминаешь его название у себя в голове
    пример,
    показатели
     
    3. Идёшь на тот лист, где нужно чтобы выпадал список. указываешь/выделяешь диапазаон ячеек, на которые будет распространяться условия списка (п.1). затем идёшь в меню Данные - Проверка:
    в Параметры выбираешь Список
    ставишь "=" (равно) в строке Источник и пишешь название списка (п.2)
    пример,
    =показатели
     
    Во вкладках Сообщение для ввода или для ошибок - пишешь по надобности всё что нужно.


    ----------
    Могу помочь, но только своими знаниями и ...

    Всего записей: 4246 | Зарегистр. 02-09-2001 | Отправлено: 15:27 26-02-2005
    Fronton



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

    Цитата:
    Импортировать данные нужного файла в чистую книгу:
    Данные/Импорт внешних данных/Импортировать данные...
    Метод также позволяет выбрать кодировку файла импортируемых данных.  

     
    Жалко, что только нет функции экспортировать как в ACCESS (см. ПМ).

    Всего записей: 312 | Зарегистр. 02-11-2002 | Отправлено: 20:40 26-02-2005
    lansa

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите.
    Иногда пропадают буквы, обозначающие столбец (А, В, С ...) остаются только цифры. Как можно вернуть буквы?

    Всего записей: 32 | Зарегистр. 26-11-2004 | Отправлено: 18:27 27-02-2005
    Robert



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lansa
     
    Сервис - Параметры - Общие - Стиль ссылок R1C1?

    Всего записей: 285 | Зарегистр. 12-03-2003 | Отправлено: 18:31 27-02-2005
    nofate



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

    Всего записей: 66 | Зарегистр. 09-12-2001 | Отправлено: 22:19 27-02-2005
    lansa

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

    Всего записей: 32 | Зарегистр. 26-11-2004 | Отправлено: 23:32 27-02-2005
    Solenaja



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


    ----------
    Могу помочь, но только своими знаниями и ...

    Всего записей: 4246 | Зарегистр. 02-09-2001 | Отправлено: 15:59 01-03-2005
    xcm

    Графоман
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Solenaja
    Function cnt_val(sh, col)
    n_v = 0
    Set Worksheet = Sheets(sh)
     
    n_Rw_cnt = 65536
    n_Col_cnt = 256
     
    For i = 1 To n_Rw_cnt
    V = Worksheet.Cells(i, col).Value
        If Not IsEmpty(V) And (IsNumeric(V)) Then
        n_v = n_v + 1
        End If
    Next
    'MsgBox n_v
    cnt_val = n_v
    End Function
     
    ---
     
    Запускаешь Эксель, идешь в редактор VBA по Alt-F11  
    Там по правой кнопке говоришь Insert/Module, туда копируешь этот текст. Сохраняешь.
    идешь обратно в эскель и в ячейку пишешь =cnt_val("Лист1";1) те посчитать на лист1 все числа в колонке A.
     
    еще надо разрешить выполнение макросов в настройках безопасности.

    ----------
    на свете счастья нет, но есть попкорн и сникерс.

    Всего записей: 652 | Зарегистр. 01-11-2002 | Отправлено: 16:53 01-03-2005 | Исправлено: xcm, 17:56 01-03-2005
    Solenaja



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xcm
    я к сожалению не в курсе как его прикрутить через VB, подскажи
    или может стандартными фукнциями как то можно ?
     
    Добавлено:
    Как вариант я делаю так:
    добавляю ещё один столбец, в котором проверяю условие:
    если число в ячейке > 0, то присваиваю 1, если нет 0
    в конце столбца просто суммирую

    ----------
    Могу помочь, но только своими знаниями и ...

    Всего записей: 4246 | Зарегистр. 02-09-2001 | Отправлено: 17:29 01-03-2005 | Исправлено: Solenaja, 19:04 01-03-2005
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Solenaja
    Цитата:
    В столбце есть пустые ячейки и с числами

    Если ячеек других типов нет, то можно воспользоваться чемто типа этого:
    =ЧСТРОК(диапазон)-СЧИТАТЬПУСТОТЫ(диапазон)
     
    Над формулой для общего случая сейчас подумаю.
     
     
    Добавлено:

    Цитата:
    если число в ячейке > 0, то присваиваю 1, если нет 0  

    В таком случае лучше уж пользоваться формулой =Ч(ЕЧИСЛО(ячейка))
     
     
    Добавлено:
    По поводу единой формулы:
    Пока что-то кроме глупого
    Код:
    =СЧЁТЕСЛИ(диапазон;">=-9,99999999999999E+307")
    в голову ничего не лезет. Если придумаю - напишу.

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 19:40 01-03-2005 | Исправлено: Troitsky, 21:36 01-03-2005
       

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (Часть 1)
    Widok (01-04-2006 15:33): лимит страниц. переезжаем сюда.


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru