Как узнать версию эксель vba
Всем нам приходится - кому реже, кому чаще - повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую "рутинную составляющую" - одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.
Макрос - это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых нужных нам действий, которые нам не хочется выполнять вручную.
Способ 1. Создание макросов в редакторе Visual Basic
Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно - редактор программ на VBA, встроенный в Microsoft Excel.
- В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис - Макрос - Редактор Visual Basic(Toos - Macro - Visual Basic Editor).
- В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer) . Выбираем Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer) . Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic(Visual Basic Editor)
:
К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:
Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:
-
Обычные модули - используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert - Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:
Обычный макрос, введенный в стандартный модуль выглядит примерно так:
Давайте разберем приведенный выше в качестве примера макрос Zamena:
С ходу ясно, что вот так сразу, без предварительной подготовки и опыта в программировании вообще и на VBA в частности, сложновато будет сообразить какие именно команды и как надо вводить, чтобы макрос автоматически выполнял все действия, которые, например, Вы делаете для создания еженедельного отчета для руководства компании. Поэтому мы переходим ко второму способу создания макросов, а именно.
Способ 2. Запись макросов макрорекордером
Макрорекордер - это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Если мы включим макрорекордер на запись, а затем начнем создавать свой еженедельный отчет, то макрорекордер начнет записывать команды вслед за каждым нашим действием и, в итоге, мы получим макрос создающий отчет как если бы он был написан программистом. Такой способ создания макросов не требует знаний пользователя о программировании и VBA и позволяет пользоваться макросами как неким аналогом видеозаписи: включил запись, выполнил операци, перемотал пленку и запустил выполнение тех же действий еще раз. Естественно у такого способа есть свои плюсы и минусы:
- Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу - запись останавливается.
- Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
- Если во время записи макроса макрорекордером вы ошиблись - ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) - во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.
Чтобы включить запись необходимо:
- в Excel 2003 и старше - выбрать в меню Сервис - Макрос - Начать запись(Tools - Macro - Record New Macro)
- в Excel 2007 и новее - нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)
Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:
- Имя макроса - подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
- Сочетание клавиш - будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис - Макрос - Макросы - Выполнить(Tools - Macro - Macros - Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
- Сохранить в. - здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
- Эта книга - макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
- Новая книга - макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
- Личная книга макросов - это специальная книга Excel с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.
После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .
Запуск и редактирование макросов
Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или - в старых версиях Excel - через меню Сервис - Макрос - Макросы (Tools - Macro - Macros) :
- Любой выделенный в списке макрос можно запустить кнопкой Выполнить(Run) .
- Кнопка Параметры(Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
- Кнопка Изменить(Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.
Создание кнопки для запуска макросов
Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:
Кнопка на панели инструментов в Excel 2003 и старше
Откройте меню Сервис - Настройка (Tools - Customize) и перейдите на вкладку Команды (Commands) . В категории Макросы легко найти веселый желтый "колобок" - Настраиваемую кнопку (Custom button) :
Перетащите ее к себе на панель инструментов и затем щелкните по ней правой кнопкой мыши. В контекстом меню можно назначить кнопке макрос, выбрать другой значок и имя:
Кнопка на панели быстрого доступа в Excel 2007 и новее
Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar) :
Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:
Кнопка на листе
Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:
- В Excel 2003 и старше - откройте панель инструментов Формы через меню Вид - Панели инструментов - Формы (View - Toolbars - Forms)
- В Excel 2007 и новее - откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer)
Выберите объект Кнопка (Button) :
Затем нарисуйте кнопку на листе, удерживая левую кнопку мыши. Автоматически появится окно, где нужно выбрать макрос, который должен запускаться при щелчке по нарисованной кнопке.
Создание пользовательских функций на VBA
Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция - только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).
Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert - Module и введем туда текст нашей функции:
Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка - Функция) в категории Определенные пользователем (User Defined) :
После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:
Как найти версию Excel, которую вы используете сейчас?
В некоторых случаях вам может потребоваться информация о версии используемого вами Excel. В этой статье мы покажем вам методы поиска информации о версии вашего Excel.
Найдите версию Excel 2013/2016
Чтобы найти версию Excel 2013/2016, вы можете сделать следующее.
1. Нажмите Файл > Аккаунт > О Excel. Смотрите скриншот:
2. Затем вы узнаете свою версию Excel в О Microsoft Excel диалоговое окно.
Найдите версию Excel 2010
Для Excel 2010 сделайте следующее.
1. Нажмите Файл > Справка. Затем вы можете увидеть, что версия Excel отображается в О Microsoft Excel раздел. Смотрите скриншот:
Найдите версию Excel 2007
1. Нажмите Офисы кнопка> Параметры Excel.
2. в Параметры Excel диалоговое окно, нажмите Файлы для скачивания на левой панели, вы увидите версию Excel в о Microsoft Office Excel 2007 раздел. Смотрите скриншот:
Уточните версию Excel с кодом VBA
Помимо вышеперечисленных методов, вы также можете найти версию Excel с кодом VBA.
1. Нажмите другой +F11 для открытия Окно Microsoft Basic для приложений.
2. Затем нажмите Вставить > Модули. Смотрите скриншот:
3. Скопируйте и вставьте приведенный ниже код VBA в окно модуля, а затем нажмите F5 ключ для запуска кода.
Код VBA: найти версию Excel
4. Затем Microsoft Excel появится диалоговое окно с номером версии.
Public Sub Что_то_делать()
Dim FileName As String, pos As Long
FileName = Получить_Путь_И_Имя_Файла
pos = InStrRev(FileName, "\")
If LCase$(Mid$(FileName, pos + 1)) Like "sm. xlsm" Then
MsgBox "Если так, то открываем"
Else
MsgBox "Если так, то сообщаем о неподходящем имени файла"
End If
End SubPublic Sub Что_то_делать()
Dim FileName As String, pos As Long
FileName = Получить_Путь_И_Имя_Файла
pos = InStrRev(FileName, "\")
If LCase$(Mid$(FileName, pos + 1)) Like "sm. xlsm" Then
MsgBox "Если так, то открываем"
Else
MsgBox "Если так, то сообщаем о неподходящем имени файла"
End If
End SubPublic Sub Что_то_делать()
Dim FileName As String, pos As Long
FileName = Получить_Путь_И_Имя_Файла
pos = InStrRev(FileName, "\")
If LCase$(Mid$(FileName, pos + 1)) Like "sm. xlsm" Then
MsgBox "Если так, то открываем"
Else
MsgBox "Если так, то сообщаем о неподходящем имени файла"
End If
End Sub[/vba]
Путь и маску файла перепишите свою.
Знак вопроса заменяет один любой символ, звездочка - любое количество любых символов.[/vba]
Путь и маску файла перепишите свою.
Знак вопроса заменяет один любой символ, звездочка - любое количество любых символов. _Boroda_[/vba]
Путь и маску файла перепишите свою.
Знак вопроса заменяет один любой символ, звездочка - любое количество любых символов. Автор - _Boroda_
Дата добавления - 09.09.2015 в 09:29Sub List_files()
Application.ScreenUpdating = 0
With ThisWorkbook' MyPath = Range("c1").Value
MyPath = "C:\Users\Alex\Desktop\111\*.xls*"
myName = Dir(MyPath, vbDirectory)
i = 6
Do While myName <> ""
If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
.Sheets("stat").Cells(i, 1) = myName[/vba]
Set wb = Workbooks.Open(Filename:=MyPath & myName)Sub List_files()
Application.ScreenUpdating = 0
With ThisWorkbook' MyPath = Range("c1").Value
MyPath = "C:\Users\Alex\Desktop\111\*.xls*"
myName = Dir(MyPath, vbDirectory)
i = 6
Do While myName <> ""
If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
.Sheets("stat").Cells(i, 1) = myName[/vba]
Set wb = Workbooks.Open(Filename:=MyPath & myName)[/vba] выдает ошибку на жирной строчке и почему-то не хочет открывать файлы во вложеных папках leskris
Sub List_files()
Application.ScreenUpdating = 0
With ThisWorkbook' MyPath = Range("c1").Value
MyPath = "C:\Users\Alex\Desktop\111\*.xls*"
myName = Dir(MyPath, vbDirectory)
i = 6
Do While myName <> ""
If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
.Sheets("stat").Cells(i, 1) = myName[/vba]
Set wb = Workbooks.Open(Filename:=MyPath & myName)[/vba] выдает ошибку на жирной строчке и почему-то не хочет открывать файлы во вложеных папках Автор - leskris
Дата добавления - 09.09.2015 в 14:40Можно в макросе из прошлой темы строку с MyPath перед ДИРом переписать так
получается что мы пытаемся открыть файл с непонятным C:\Мои\Работа\Прочее\ЕЛС\Для_PDF\*бух*.xls* + еще название файла
[vba][/vba]
а если я убираю & myName оно все-равно не работает, я просто не доконца понимаю эти процессы поэтому не могу врубить как написать эту проверку..Можно в макросе из прошлой темы строку с MyPath перед ДИРом переписать так
получается что мы пытаемся открыть файл с непонятным C:\Мои\Работа\Прочее\ЕЛС\Для_PDF\*бух*.xls* + еще название файла
[vba][/vba]
а если я убираю & myName оно все-равно не работает, я просто не доконца понимаю эти процессы поэтому не могу врубить как написать эту проверку.. leskrisМожно в макросе из прошлой темы строку с MyPath перед ДИРом переписать так
получается что мы пытаемся открыть файл с непонятным C:\Мои\Работа\Прочее\ЕЛС\Для_PDF\*бух*.xls* + еще название файла
[vba][/vba]
а если я убираю & myName оно все-равно не работает, я просто не доконца понимаю эти процессы поэтому не могу врубить как написать эту проверку.. Автор - leskris
Дата добавления - 09.09.2015 в 14:46Sub List_files()
Application.ScreenUpdating = 0
With ThisWorkbook
.Sheets(1).Range("A2:B" & Cells(Cells.Rows.Count, 1).Row).ClearContents
MyPath = "C:\Мои\Стереть\"
Mask = "*_1.xls*"
myName = Dir(MyPath & Mask, vbDirectory)
i = 1
Do While myName <> ""
If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
.Sheets(1).Cells(i, 1) = myName
Set wb = Workbooks.Open(Filename:=MyPath & myName)Sub List_files()
Application.ScreenUpdating = 0
With ThisWorkbook
.Sheets(1).Range("A2:B" & Cells(Cells.Rows.Count, 1).Row).ClearContents
MyPath = "C:\Мои\Стереть\"
Mask = "*_1.xls*"
myName = Dir(MyPath & Mask, vbDirectory)
i = 1
Do While myName <> ""
If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
.Sheets(1).Cells(i, 1) = myName
Set wb = Workbooks.Open(Filename:=MyPath & myName)Sub List_files()
Application.ScreenUpdating = 0
With ThisWorkbook
.Sheets(1).Range("A2:B" & Cells(Cells.Rows.Count, 1).Row).ClearContents
MyPath = "C:\Мои\Стереть\"
Mask = "*_1.xls*"
myName = Dir(MyPath & Mask, vbDirectory)
i = 1
Do While myName <> ""
If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
.Sheets(1).Cells(i, 1) = myName
Set wb = Workbooks.Open(Filename:=MyPath & myName)да теперь все работает, спасибо большое! а как сделать чтобы все папки открывало внутри заданого пути?
C:\Users\Alex\Desktop\111\*\ если так пишу не хочетда теперь все работает, спасибо большое! а как сделать чтобы все папки открывало внутри заданого пути?
C:\Users\Alex\Desktop\111\*\ если так пишу не хочет leskrisВОобщем почитал литературу, и выяснил что есть понятие глубины поиска, но команда DIR не поддерживает это, есть функция FilenamesCollection
но эксель почемуто пишет, что это неизвестная функция, хочу поменять в коде 1 строку на вторуюЧто я не так делаю? какая функция позволяет открывать файлы во встроеных папках по заданному пути?
ВОобщем почитал литературу, и выяснил что есть понятие глубины поиска, но команда DIR не поддерживает это, есть функция FilenamesCollection
но эксель почемуто пишет, что это неизвестная функция, хочу поменять в коде 1 строку на вторуюЧто я не так делаю? какая функция позволяет открывать файлы во встроеных папках по заданному пути? leskris
Что я не так делаю? какая функция позволяет открывать файлы во встроеных папках по заданному пути? Автор - leskris
Дата добавления - 11.09.2015 в 06:07Доброе время суток
Pelena, какое-то странное смешение кода для рекурсивного вызова и VBA Dir и Scripting.FileSystemObject. Можно же было и с использованием Dir организовать проход по вложенным папкам. Наверное уж лучше так, если переходить к "современному" использованию COM-библиотек
[vba]Public Sub test()
Dim pShell As Object, pFolder As Object
'Получить объект оболочки ОС
Set pShell = CreateObject("Shell.Application")
'получить объект начальной папки сканирования
Set pFolder = pShell.Namespace("c:\test")
'запуск вывода путей и имён файлов по маске
PrintAllFiles pFolder, "*.xlsx;*.xls"
End SubPrivate Sub PrintAllFiles(ByVal inFolder As Object, ByVal FileMask As String)
Dim pItem As Object, pItems As Object
'получить все объекты папки
Set pItems = inFolder.Items
'выбрать только файлы по заданной маске
pItems.Filter &H40, FileMask
'вывести полный путь и имя файла
For Each pItem In pItems
Debug.Print pItem.Path
Next
'получить все объекты папки
Set pItems = inFolder.Items
'получить только подпапки
pItems.Filter &H20, "*.*"
'для каждой подпапки вызвать PrintAllFiles
For Each pItem In pItems
PrintAllFiles pItem.GetFolder, FileMask
Next
End SubДоброе время суток
Pelena, какое-то странное смешение кода для рекурсивного вызова и VBA Dir и Scripting.FileSystemObject. Можно же было и с использованием Dir организовать проход по вложенным папкам. Наверное уж лучше так, если переходить к "современному" использованию COM-библиотек
[vba]Public Sub test()
Dim pShell As Object, pFolder As Object
'Получить объект оболочки ОС
Set pShell = CreateObject("Shell.Application")
'получить объект начальной папки сканирования
Set pFolder = pShell.Namespace("c:\test")
'запуск вывода путей и имён файлов по маске
PrintAllFiles pFolder, "*.xlsx;*.xls"
End SubPrivate Sub PrintAllFiles(ByVal inFolder As Object, ByVal FileMask As String)
Dim pItem As Object, pItems As Object
'получить все объекты папки
Set pItems = inFolder.Items
'выбрать только файлы по заданной маске
pItems.Filter &H40, FileMask
'вывести полный путь и имя файла
For Each pItem In pItems
Debug.Print pItem.Path
Next
'получить все объекты папки
Set pItems = inFolder.Items
'получить только подпапки
pItems.Filter &H20, "*.*"
'для каждой подпапки вызвать PrintAllFiles
For Each pItem In pItems
PrintAllFiles pItem.GetFolder, FileMask
Next
End SubPublic Sub test()
Dim pShell As Object, pFolder As Object
'Получить объект оболочки ОС
Set pShell = CreateObject("Shell.Application")
'получить объект начальной папки сканирования
Set pFolder = pShell.Namespace("c:\test")
'запуск вывода путей и имён файлов по маске
PrintAllFiles pFolder, "*.xlsx;*.xls"
End SubPrivate Sub PrintAllFiles(ByVal inFolder As Object, ByVal FileMask As String)
Dim pItem As Object, pItems As Object
'получить все объекты папки
Set pItems = inFolder.Items
'выбрать только файлы по заданной маске
pItems.Filter &H40, FileMask
'вывести полный путь и имя файла
For Each pItem In pItems
Debug.Print pItem.Path
Next
'получить все объекты папки
Set pItems = inFolder.Items
'получить только подпапки
pItems.Filter &H20, "*.*"
'для каждой подпапки вызвать PrintAllFiles
For Each pItem In pItems
PrintAllFiles pItem.GetFolder, FileMask
Next
End SubЗдравствуйте! У Вас нет темы по работе с фильтром. Можно проконсультироваться на этот счёт?
Здравствуйте, Сергей!
Задавайте вопрос, постараюсь ответить.Спасибо, Евгений! Имеется в Excel столбец с включённым автофильтром. Можно ли программно запустить окно фильтра для выбора значений? Т.е. не руками нажимать на иконку фильтра, а заставить окно открываться с помощью макроса. Спасибо за ответ.
Да, это возможно:
Сергей, уточните вопрос: нужно программно нажать кнопки Ok и Отмена или отследить, какая из них была нажата?
Просто отследить, какая кнопка нажата.
По предыдущему вопросу. Я вставил sendkeys… в конец макроса, который запускается при нажатии кнопки на листе. Окно фильтра появляется и тут же закрывается. А как сделать, чтобы окно осталось, и пользователь мог выбрать данные?Евгений, я разобрался, почему не выводилось окно с фильтром.
Пример отслеживания нажатий кнопки «OK» автофильтра. На нажатие кнопки «Отмена» код не реагирует.
Вставьте в стандартный модуль (в примере — Module1) объявление глобальной переменной и код процедуры для кнопки:
Range("A1").CurrentRegion можно заменить на имя таблицы.
Евгений, а формулу в поле B2 оставлять или её можно удалить?
Можно удалить, если в таблице есть другие формулы. Я изменил код процедуры Worksheet_Calculate() в предыдущем примере, чтобы она не реагировала на изменение формул, а только на нажатие кнопки «OK» автофильтра. Range("A1") — это ячейка с кнопкой фильтра.
Евгений, спасибо за корректировку процедуры. Думаю, в ней и поле myString1 необязательно (и связанная проверка с ним), т.к. пользователь может выбрать все значения.
Но… после команды SendKeys "%" событие Worksheet_Calculate() отрабатывается только один раз :(.Сергей, событие Worksheet_Calculate() не зависит от команды SendKeys "%" . Ограничение стоит здесь:
Код в процедуре Worksheet_Calculate() срабатывает только когда активна ячейка Range("A1") . Если заменить в этой строке Range("A1") на диапазон строки заголовков таблицы, тогда код будет срабатывать при любой активной ячейке в заголовке.
В переменную myString записывается состояние таблицы до применения фильтра, в переменную myString1 — после применения. Затем их содержимое сравнивается: если они содержат разные значения — значит, фильтр был применен.
Здравствуйте! может я не туда пишу. вопрос
нужно посчитать кол-во строк в столбце «В» (от 100 до 5000) и вставить в формулу вместо 744
table = Range("B2:C744")
спасибо.В столбце «B» не должно быть пустых ячеек до последней строки таблицы.
Как определить в VBA есть узор в ячейке?
Спасибо за достаточно полную информацию.
Был бы очень вам признателен, если бы вы подсказали:
как изменить ширину блоков верхнего колонтитула.
«Введена слишком длинная строка. Уменьшите число знаков.»
При изменении шрифта с полужирного на обычный всё нормально
воспринимается,
Прошу прощения, если не по адресу.Добрый день! Никак не могу решить проблему с заблокированным автофильтром на защищенном макросом (нашел на форумах) листе. Подскажите пожалуйста, куда и какую строчку нужно добавить в макрос, чтобы при открытии файла был активен автофильтр:
Добрый день, Владислав!
Замените строкуДобрый день, Евгений!
ОГРОМНОЕ СПАСИБО. :))Здравствуйте, помогите, пожалуйста, решить задачу((
Разработать программу «Кредитный калькулятор» для расчета выплат по кредиту в условиях начисления процентов по аннуитетной схеме постнумерандо. Форма должна предусматривать ввод:
1) сумма кредита, допустимы 2 знака после запятой;
2) процентная ставка (годовая), допустимы 2 знака после запятой;
3) количество периодов (месяцев), целое положительное число.
Также форма должна содержать две кнопки:
1) «Ok» (выполнить расчет, заполнить лист Excel, освободить форму и закончить работу программы);
2) «Отмена» (освободить форму и закончить работу программы).
На лист Excel следует вывести 5 колонок:
1) номер периода;
2) остаток кредита;
3) сумма процентов за пользование кредитом, подлежащая к оплате;
4) сумма погашения основного долга (кредита);
5) общая сумма выплат за период.
Форма должна быть открыта из макроса «main» и там же освобождена по завершению своего использования. Форма должна содержать только код работы с формой и ввода данных. Логика верификации данных должна быть, по возможности, отделена от кода формы. Бизнес-логика обязательно должна быть отделена от кода формы.Здравствуйте, Рафия!
С разработкой кредитного калькулятора вам помогут только за плату на бирже фриланса.Добрый день, Евгений! Я только начинаю работать с VBA. Помогите, пожалуйста, прописать код для автоматического перемещения курсора на ячейку вправо после заполнения предыдущей.
Здравствуйте, Ева! Для перемещения фокуса в ячейку справа код VBA не нужен: используйте для этого клавишу «Tab» или настройте клавишу «Enter» для перехода вправо (Файл >> Параметры >> Дополнительно).
Спасибо за ответ! Да, но это надо делать вручную; речь идёт об автоматическом перемещении курсора.
Как узнать, какая версия Microsoft Office (Word, Excel и т.д.) установлена
По тем или иным причинам порой требуется узнать, какая версия Microsoft Office установлена на компьютере. Это не составляет особой сложности, особенно при существовании данного руководства.
Давайте перейдём к практическому руководству по определению версии установленной копии Microsoft Office в вашем случае.
Определение установленной версии Microsoft Office
- Откроем какую-либо программу из данного пакета. К примеру, Microsoft Word.
- В окне данного редактора далее требуется нажать на основную кнопку меню (Файл).
Выскочит относящееся к нему меню, среди пунктов которого будет Справка (или же пункт под названием Учётная запись) – кликните по оному.
В правой части окна будет изложена техническая информация, среди которой указана и установленная версия Microsoft Office.Согласитесь, достаточно просто получить требуемую информацию, если возникла в этом необходимость у решений, которые созданы в недрах американской корпорации Майкрософт. Действительно удобные и созданные для людей решения, которым едва ли найдётся замена по сей день.
В свою очередь, Вы тоже можете нам очень помочь.
Просто поделитесь статьей в социальных сетях с друзьями.
Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!
- Помогла понравилась статья? Поделись ею в соцсетях!
- Спасибо!
Привет.
Не секрет, что в экономике ныне дела обстоят не лучшим образом, цены растут, а доходы падают. И данный сайт также переживает нелёгкие времена 🙁
Если у тебя есть возможность и желание помочь развитию ресурса, то ты можешь перевести любую сумму (даже самую минимальную) через форму пожертвований, или на следующие реквизиты:Оказавшие помощь:
Сергей И. – 500руб
– 468руб
– 294руб
Мария М. – 300руб
Валерий С. – 420руб
– 600руб
Полина В. – 240рубКак узнать версию экселя
Установить проверку. “Если пользователь открывает файл версией более ранней чем 2010?”
Коротко об случившемся.
Я сегодня, такой веселый и крутой, добавил в существующий в офисе макрос обновления. Теперь когда макрос создает таблицу с данными он делает из нее “умную таблицу” и вставляет срезы (фильтры).А теперь я задумался, не у всех есть Excel 2010, “срезы” в более ранних версиях отсутствую. Могу ли я определить версию Excel?
и в коде VBA создать условие что если версия более ранняя чем 2010, то блок кода создания умной таблицы со срезами попросту не выполнять?Прикрепляю файл – пример.
Установить проверку. “Если пользователь открывает файл версией более ранней чем 2010?”
Коротко об случившемся.
Я сегодня, такой веселый и крутой, добавил в существующий в офисе макрос обновления. Теперь когда макрос создает таблицу с данными он делает из нее “умную таблицу” и вставляет срезы (фильтры).А теперь я задумался, не у всех есть Excel 2010, “срезы” в более ранних версиях отсутствую. Могу ли я определить версию Excel?
и в коде VBA создать условие что если версия более ранняя чем 2010, то блок кода создания умной таблицы со срезами попросту не выполнять?Прикрепляю файл – пример. lopuxi
Коротко об случившемся.
Я сегодня, такой веселый и крутой, добавил в существующий в офисе макрос обновления. Теперь когда макрос создает таблицу с данными он делает из нее “умную таблицу” и вставляет срезы (фильтры).А теперь я задумался, не у всех есть Excel 2010, “срезы” в более ранних версиях отсутствую. Могу ли я определить версию Excel?
и в коде VBA создать условие что если версия более ранняя чем 2010, то блок кода создания умной таблицы со срезами попросту не выполнять?Прикрепляю файл – пример. Автор – lopuxi
Дата добавления – 28.04.2016 в 17:46Как узнать версию Word на Windows 7 8 10 установленного на вашем компьютере
Добрый день, друзья. Сегодня мы рассмотрим: — Как узнать версию Word, установленного на вашем ПК. Это необходимо для поиска правильного мануала для решения своего вопроса в этой программе. Всё дело в том, что в разных версиях отличается меню, и, если вы в поиске найдёте решение для другой версии, это вам не поможет определить, какая версия установлена у вас.
Довольно много начинающих пользователей ПК ошибаются между версиями Windows и Office. Операционная система представляет собой единую совокупность различного софта, под началом которого данные приложения функционируют. Также, есть и сторонние программы, вроде Adobe Photoshop, браузеров Яндекс и Google Chrome, оптимизатор Ccleaner, и различные текстовые редакторы, вроде Office Word, о котором сейчас и пойдёт речь.
Без стороннего софта ПК может функционировать, а без ОС не может. Например, Word можно подменить иным софтом, функционал которого похож на данную программу. Если вы вообще ничего не пишите, то в текстовом редакторе вам особой необходимости нет. Майкрософт Оффис не является частью системных программ Windows. Office покупают и устанавливают самостоятельно.
На данный момент самым новым является Word 2019, хотя ещё совсем недавно был Word 2016. По моему наблюдению, начиная с 2013 года данный софт мало изменился, по сравнению с ранними версиями, особенно с одной из первых версий Word 2003 года. Что интересно, довольно много пользователей продолжают работать со старыми версиями, даже с Office 2003.
Во многом это характерно тем, что данный софт платный. Например, сейчас он стоит от 25000 руб., до 32000, в зависимости от магазина. Поэтому, не удивительно, что часть пользователей продолжают пользоваться старыми версиями. По поводу взломанных версий, многие ими не пользуются потому, что во многих из них присутствуют вирусы, и они часто тормозят. Хотя, вы можете скачать вполне работоспособную взломанную версию, это как повезёт.
Вообще, когда вы приобретаете ПК, Windows с пакетами Office в уважающих себя магазинах должны быть уже инсталлированы в этих компьютерах. Обычно, они входят в стоимость компьютера. Так давайте узнаем, какой-же именно пакет Office у вас установлен?
Как определить версию Word?
1 Метод: Заходим через «Пуск» в меню программ и начинаем искать папочку «Microsoft Office». В данной папочке нам нужно найти «Microsoft Word». Рассматриваем ярлык данной программы. После этого файла должна стоять цифра. Она и есть версия нашего Word. Как видите, у меня это Ворд 2010.
2 Метод: на экране вашего рабочего стола помещён ярлык данной программы. Если версия ранняя, то после неё стоит цифра. К примеру, Word 2010, как на этом скриншоте.
3 Метод: открываем наш документ Word и через открытую страницу выясняем версию программы.
Если установлен Ворд 2002 или 2003
- Нам нужно войти в верхнее меню программы. Ищем вкладку «Справка», в ниспадающем меню выбираем «О программе»;
- У нас выпадает окно, где мы явно видим, что это Ворд 2002.
Открываем документ Word 2007
Определить данный вариант Ворда легче, чем других, так как в открытом документе достаточно взглянуть на эмблему Office в углу слева. Если она там действительно присутствует, то это Ворд 2007.
Открываем документ Word 2010
Зайдя в документ, нам нужно открыть вкладку «Файл», в ниспадающем меню выбираем «Справка». Внимательно просматриваем данное окно, и замечаем ближе справа надпись Microsoft Office Word 2010.
Открываем документ Word 2013 – 2019
В программе данных годов вначале выберем также «Файл», затем в левом столбике выберем вкладку «Учетная запись». Как видите из скриншота, у меня стоит Word 2019 года, так как я обычно выбираю самые последние варианты программ. С Вордом 2013 – 2016 поступаем также, только надписи будут соответственные их годам. Успехов!
Вывод: — Как узнать версию Word вы теперь с успехом научились определять. Пользуйтесь той программой, которая вас устраивает. Успехов!
Как определить версию Microsoft.Office.Interop.Excel на клиентском компьютере?
У меня есть приложение, которое должно использовать сборку Microsoft.Office.Interop.Excel (ничего сумасшедшего, просто писать на рабочие листы).
Во время компиляции я использую Microsoft.Office.Interop.Excel 15.0. У меня установлен Office 2013, и все работает так, как ожидалось.Но все это не имеет отношения к тому, может ли клиент использовать его.
Как я могу программно определить версию Interop.Excel, которую пользователь установил? Как только я узнаю, какая у них версия, как я могу затем загрузить эти сборки во время выполнения, чтобы получить доступ к объектам Interop? Если у пользователя установлен, например, Interop.Excel 14.0, означает ли это, что у них определенно установлен Excel? Как проверить, какая версия Excel установлена?
Я знаю, что пользователю необходимо установить Office для использования объектов Interop.Excel, так значит ли это, что мне нужно проверять как версию Office, так и версию сборки Interop?
Мы планируем поддерживать Excel 2007, 2010 и 2013 годы.
Короче говоря — Как мне покрыть все мои базы здесь?
Есть много вопросов о Interop.Excel, но ничего, что ясно мне показалось:
a) Что мне нужно проверить на клиентском компьютере
б) Как я делаю эти проверки путем отражения (избегайте поиска в реестре)
Если у пользователя установлен, например, Interop.Excel 14.0, означает ли это, что у них определенно установлен Excel?
Нет, interops используются для сортировки вызовов с управляемых языков программирования в неуправляемые приложения.
Как проверить, какая версия Excel установлена?
Мы планируем поддерживать Excel 2007, 2010 и 2013 годы. Вкратце. Как мне покрыть все мои базы здесь?
Здесь гораздо более простое решение. В моем случае мне нужно разделить потоки кода из-за версий Excel Interop.
Как определить версию Microsoft.Office.Interop.Excel на клиентском компьютере?
У меня есть приложение, которое должно использовать сборку Microsoft.Office.Interop.Excel (ничего сумасшедшего, просто писать на рабочие листы).
Во время компиляции я использую Microsoft.Office.Interop.Excel 15.0. У меня установлен Office 2013, и все работает так, как ожидалось.Но все это не имеет отношения к тому, может ли клиент использовать его.
Как я могу программно определить версию Interop.Excel, которую пользователь установил? Как только я узнаю, какая у них версия, как я могу затем загрузить эти сборки во время выполнения, чтобы получить доступ к объектам Interop? Если у пользователя установлен, например, Interop.Excel 14.0, означает ли это, что у них определенно установлен Excel? Как проверить, какая версия Excel установлена?
Я знаю, что пользователю необходимо установить Office для использования объектов Interop.Excel, так значит ли это, что мне нужно проверять как версию Office, так и версию сборки Interop?
Мы планируем поддерживать Excel 2007, 2010 и 2013 годы.
Короче говоря — Как мне покрыть все мои базы здесь?
Есть много вопросов о Interop.Excel, но ничего, что ясно мне показалось:
a) Что мне нужно проверить на клиентском компьютере
б) Как я делаю эти проверки путем отражения (избегайте поиска в реестре)
Если у пользователя установлен, например, Interop.Excel 14.0, означает ли это, что у них определенно установлен Excel?
Нет, interops используются для сортировки вызовов с управляемых языков программирования в неуправляемые приложения.
Как проверить, какая версия Excel установлена?
Мы планируем поддерживать Excel 2007, 2010 и 2013 годы. Вкратце. Как мне покрыть все мои базы здесь?
Здесь гораздо более простое решение. В моем случае мне нужно разделить потоки кода из-за версий Excel Interop.
Как узнать какая версия Office установлена на вашем ПК
Вас интересует, какая версия Office 2010 используется на домашнем компьютере – 32 или 64-битная? В этой статье мы вам подскажем, как узнать версию Office.
Как узнать версию office
1. Открываем офисное приложение. В нашем примере речь пойдет о Word 2010, но этот способ работает также как и с другими версиями офисного приложения. Открываем раздел главного меню «File», а в нем пункт «Help».
2. В результате вы сможете получить информацию о той версии офисного пакета, которая у вас установлена. Помимо версии основного пакета вы узнаете версии других связанных приложений, равно как номер версии и ID проекта.
3. Запишите номер версии, который, скорее всего, окажется 32-битной версией офисного пакета. Чаще всего именно эту разрядность приложений используют при установке Office 2010 (по умолчанию).
4. Если вы обнаружили, что используете 32-битную версию, то можно загружать и использовать как 32-битную версию, так и версию x86 офисных расширений.
5. Если же вы используете 64-битную версию офисного пакета, то в указании версии после названия Office должен стоять суффикс «64-bit». В таком случае при загрузке дополнений вам необходимо использовать исключительно версии для стандарта x64.
6. Если вы непроизвольно попытаетесь установить 32-битное расширение на 64-битную версию Office или наоборот, мастер установки может предупредить вас о необходимости скачать и установить правильную версию. Стоит обратить внимание также на то, что некоторые 32-битные расширения, включая старые версии, могут нормально работать с 64-битной версией.
Заключение
Хотя проверку версии офисного пакета не следует проводить каждый день, будет не лишним проверить, какую версию Office вы используете – 32 или 64-битную. Теперь, когда вы в курсе, как узнать версию Office, можно приступить к его тонкой настройке. Расширения и плагины могут добавить офисному пакету новые возможности, начиная с поддержки сервисов LinkedIn и Facebook и заканчивая вставкой в письмо почтового клиента Outlook химических уравнений.
Читайте также: