Мегаобучалка Главная | О нас | Обратная связь


Application. Workbooks (“ Отчет ”). Worksheets (“ Май ”). Rows (2). Delete



2019-11-13 244 Обсуждений (0)
Application. Workbooks (“ Отчет ”). Worksheets (“ Май ”). Rows (2). Delete 0.00 из 5.00 0 оценок




Определение имени приложения:

                                     Application. Name

Если вспомнить, что строка содержит отдельные ячейки, свойства которых тоже можно устанавливать, то выражение становится ещё длиннее:

Application. Workbooks (“ Отчет ”). Sheets (“ Май ”). Rows (2). Cells (1). Value = “Да”

Таким образом ссылки на объекты могут быть слишком громоздкими. Если данный объект часто используется в программе, то разумно создать объектную переменную с помощью команды Set. Например, предыдущий пример можно записать в следующем виде:

                                     Dim R As Object

Set R = Application. Workbooks (“ Отчет ”). Sheets (“ Май ”). Rows (2). Cells (1)

                                    R.Value = “ Да ”

Приводимые выше примеры можно записать гораздо короче:

· Можно не писать имя объекта Application, т. к. это подразумевается по умолчанию;

· При работе с подобъектом уже активизированного объекта нет необходимости указывать содержащий его объект;

· VBA использует некоторые свойства и методы, которые возвращают объект, к которому они относятся.

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

                                        ActiveCells . Value = “Да”

ActiveCells (активная ячейка), ActiveSheet(Активный лист),  (активная рабочая книга) и Selection (выбор – указывает на выбранный объект) являются примерами свойств, возвращающих объект.

                                              Типы данных.

Переменные и типы данных определяют, где и как данные хранятся в памяти компьютера. В языке со строгим контролем типов вы обязаны указывать тип каждой переменной перед ее использованием. Хотя Visual Basic не является языком со строгим контролем типов, он предоставляет возможность управлять использование памяти вашего компьютера более эффективно, задавая в явном виде типы всех ваших переменных.

Определяя тип данных для величины, тем самым определяется соотношение между разрядностью, размером и используемой памятью.

                              Встроенные типы данных.

 

В Visual Basic имеется одиннадцать встроенных типов данных, представленных в таблице 5:

Тип данных Размер (байтов) Разрядность (цифр) Диапазон
Boolean 2 1 True или False
Integer 2 5 от    -32768 до 32767
Long 4 10 от -2147483648 до 2147483647
Single 4 7 от -3,402823Е+38 до -1,401298Е-45 и от 1,401298Е-45 до 3,402823Е+38
Double 8 15 от -1,79769313486232Е+308 до -4,94065645841247Е-324 и от 4,94065645841247Е-324   до 1,79769313486232Е+308
Currency 8 19 от -922337203685477,5808 до 922337203685477,5807
Date 8   от 01.01.100 до 31.12.9999
String 1+1 на символ   от 0 до 65535 символов
Object 4   Любой определенный объект
Array Определяется размером количеством и элементов  
Variant Определяется данными записанными   Любой встроенный тип данных

 

Таблица 5. Встроенные типы данных.

 

Тип данных Variant используется в Visual Basic как тип данных по умолчанию, т.е. если тип данных для хранения величины не указан, то используется тип данных Variant. Variant имеет возможность хранить практически любую величину и бывает полезен для коротких, простых программ.

                            Переменные и их объявления.

 

Переменные - это поименованные области в памяти компьютера. После вычисления какого-либо значения его нужно записать в память, чтобы затем можно было к нему обращаться. Использование переменных дает Visual Basic возможность создавать прямое соответствие между областью памяти и заданным именем.

Объявляя переменную определенного типа, указывается, какой тип данных должен быть использован при записи значения переменной в память. Для объявления переменных служит оператор Dim, который включается в верхнюю часть процедуры, использующей эти переменные. Синтаксис оператора Dim:

Dim <имя переменной>As<тип данных>,<имя переменной>As<тип данных>, ...

Примеры объявления переменных:

             Dim ProductNumber As Long, Product_Name As String

                                 Dim I As Long, aPicture

       При объявлении переменной задается единичная поименованная область памяти, а при объявлении массива - список смежных областей памяти под одним именем. Для осуществления доступа к отдельному элементу массива, имя массива снабжают номером элемента массива (индексом), заключенным в круглые скобки.

Примеры объявления массивов:

                          Dim Sales (4 to 8) As Currency

                          Dim theCoords (3, 1 to 4) As Single

Чтобы сделать переменную доступной всем процедурам во всех модулях, она объявляется на уровне модуля, использовав вместо Dim ключевое слово Public.

Объектные переменные объявляются так же, как и любые другие. Чтобы присвоить значение объектной переменной используется следующая конструкция: ключевое слово Set , имя переменной, знак равенства и формула, определяющая значение объекта.

Например, приведенная ниже процедура создает объектную переменную, присваивает ей объект Rang, ссылающийся на ячейку В5, и затем использует эту объектную переменную для присваивания значения ячейке:

                                                 Sub ObjVar ()

                                              Dim Х As Object

                                       Set Х = ActivSheet.Range (“B5”)

                                ( Или   Set Х = Range (“B1:B10)”)

                                                 X.Value = 10

                                                    End Sub

  Основные математические действия производятся с помощью операций. В таблицах 6,7,8 представлены все математические и строковые операции в порядке убывания приоритета. Для обеспечения корректности вычисления операций в сложных формулах используют круглые скобки.

Операция Название
^ Возведение в степень
- Отрицание
* Умножение            Равный
/ Деление                  приоритет
\ Деление нацело
Mod Вычисление остатка от деления
+ Сложение               Равный
- Вычитание             приоритет
& Конкатенация (строк)

                  Таблица 6. Основные операции VBA.

 

Рассмотренные выше операции дают возможность осуществлять основные математические действия, более сложные вычисления производятся с помощью встроенных функций. Visual Basic оперирует этими функциями подобно Excel, с тем отличием , что они всегда возвращают единичное значение. Функции Excel могут применяться к целым массивам чисел и возвращать массивы в качестве результатов. Чтобы обработать массив значений с помощью функции Visual Basic, нужно применить эту функцию к каждому элементу массива в отдельности.

Функция Описание
Atn Возвращает арктангенс числа
Sin Возвращает синус угла в радианах
Cos Возвращает косинус угла в радианах
Tan Возвращает тангенс угла в радианах
Exp Возвращает е^х
Log Возвращает натуральный логарифм числа (основание е=2.71828…)
Sqr Возвращает квадратный корень числа
Randomize Инициирует генератор случайных чисел
Rnd Возвращает случайное число
Abs Возвращает абсолютную величину числа
Sgn Возвращает знак числа
Fix Округляет число отсечением дробной части
Int Округляет число до ближайшего меньшего целого

          

               Таблица 7. Математические функции VBA.

 

Математические функции, приведенные в таблице, обычно требуют в качестве аргумента единичное значение, некоторым образом его трансформируют и возвращают также одно число. Тригонометрические функции Sin ( ), Cos ( ), Tan ( ) применяются к углам в радианах и преобразовывают их в соответствующую тригонометрическую величину.

         

Функция Описание
StrComp Сравнивает две строки
LCase Преобразовывает строку в нижний регистр
UCase Преобразовывает строку в верхний регистр
Space Создает строку пробелов
String Создает строку символов
Len Определяет длину строки
Instr Ищет подстроку
Lset Выравнивает строку по левому краю
Rset Выравнивает строку по правому краю
Str Преобразовывает число в строку
Val Преобразовывает строку в число

                                

                         Таблица 8. Строковые функции VBA.

 

                                                  Операторы.

Оператор присваивания - это основа всех вычислений в VBA, так как любая рассчитанная величина должна стать переменной, чтобы ее можно было хранить. Знак «=» является оператором присваивания, который предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. В правой части располагается выражение в виде формулы, в качестве которой может выступать отдельная величина или выражение, состоящее из переменных, констант, операций и функций. Переменная, располагающаяся слева, может быть простой переменной, элементом массива или свойством объекта.

       Примеры операторов присваивания:

                           Filename = "c:\vba\exampl.xls"

                           Sales = Units * Prise

                          ActiveWindow . ScrollRow = 1

Таким способом нельзя присвоить значения только объектам - они требуют специального оператора присваивания. Например, приведенная ниже процедура создает объектную переменную, присваивает ей объект Rang, ссылающийся на ячейку В5, и затем использует эту объектную переменную для присваивания значений ячейке:

                                       Sub ObjVar ()

                              Dim theRang as Object

                           Set theRang = ActiveSheet.Range(‘B5’)

                                    theRang.Value = 10

                                           EndSub

Исключением является оператор присваивания « : = ». В отличие от ранее описанного оператора присваивания «=», он применяется только по отношению к параметрам процедуры.

                                          Sub Assistant (a, b)

                                                  c = a + b

                                            Msgbox Cstr (c)

                                                  End Sub

                                             Sub Main( )

                                  Assistant a:= 1, b:= 3

                                               End Sub

       В данном примере при вызове процедуры Assistant передача параметров осуществляется присвоением значений именам параметров с помощью оператора присваивания «:=». При выполнении данной процедуры переменной c присваивается значение суммы переданных параметров с использованием оператора присваивания «=».

                 Операторы условного перехода If - Then и If-Then-Else.

 

       Условный оператор If-Then-else обеспечивает передачу управления в программе в зависимости от выполнения условия.

       Синтаксис:

                   If <условие> Then <блок_операторов_1>

                     Else <блок_операторов_2>

                       End If

       В условном операторе допустимо использование как блока операторов, так и любого из операторов. В операторе условия Оператор_1 или Блок_операторов_1 выполняется, если <условие> истинно, в противном случае выполняется Оператор_2 или Блок_операторов_2.

       Условие - это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения (таблица 9):

Операция Название Выражение Результат
= равно А = В True, если А равно В
<> не равно A<>B True, если А не равно В
> больше A>B True, если А больше В
< меньше A<B True, если А меньше В
>= больше или равно A>=B True, если А больше или равно В
<= меньше или равно A<=B True, если А меньше или равно В

           Таблица 9. Логические отношения VBA.

        

Сложные условия образуются из простых путем применения логических операций и круглых скобок.

       Ветвь Else в условном операторе является необязательной. Таким образом, возможен следующий синтаксис оператора условия:

               If <условие> Then <оператор или блок_операторов>

                                       End If

       Заметим, что в операторе условия после Then можно разместить блок операторов, для того, чтобы все они выполнялись, если условие истинно. В этом случае они должны располагаться в одну строчку и быть разделены двоеточием. Например,

                    If A>10 Then A=A+1 : B =B+A : C=C+B

                                              End If

       Заметим, что знак подчеркивания «_» в конце строки обозначает, что следующая строка является продолжением предыдущей.

       В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид:

                          If <условие_1> Then <Блок_операторов_1>

                         Else If <условие_2> Then <блок_операторов_2>

                                           Else If <условие_3> Then ...

                                           else <блок_операторов>

                                     End If

       В данном условном операторе выполняется блок_операторов_i, если истинно условие_i, в противном случае выполняется блок_операторов.

       Оператор выбора Select Case удобно использовать, когда одна величина участвует во многих сравнениях для выбора одного из блоков кода. Наиболее часто используется, когда сравниваемая величина является целым числом - селектором или индексом. Значение селектора или индекса выбирает тот блок кода, который будет выполняться.

Синтаксис:

                        Select Case <тестируемое _выражение>

                           Case <условие_выбора_1>

                                <блок_операторов_1>

                                               ... ... ...

                             Case <условие_выбора_n>

                                <блок_операторов_n>

                                        Case Else

                                 <блок_операторов_n>

                                       End Select      

       После каждого оператора Case может находиться произвольное количество других операторов, и все они будут выполняться, если условие оператора Case истинно. При использовании одного оператора его можно поместить а одну строку с операторами Case.

       Так же как и в блочной структуре IF, можно использовать специальный оператор Case, определяющий любые величины, которые не совпадают ни с одним из других операторов Case. Для этого условие Case Else включается последним блоком перед оператором End Select. Все величины, не совпавшие ни с одним оператором Case, совпадут с оператором Case Else.

       Is является ключевым словом VBA, обозначающим тестируемое выражение в операторе Case. В операторе Case допустимы составные условия, например

Case 4,7 to 8, Is >=16

Проверяет, принадлежит ли тестируемое выражение отрезку от 7 до 8 или равняется значению 4, или оно не меньше, чем 16.

Пример перевода числового значения дня недели в строковое представление.

                                            Sub perevod()

                       x = Sheets(" Лист 1").Range("e30").Value

                                             Select Case x

                                             Case 1

                   Sheets(" Лист 1").Range("e31").Value = " Понедельник "

                                             Case 2

                Sheets(" Лист 1").Range("e31").Value = " Вторник "

                                             Case 3

                 Sheets(" Лист 1").Range("e31").Value = " Среда "

                                              Case 4

                 Sheets(" Лист 1").Range("e31").Value = " Четверг "

                                              Case 5

               Sheets(" Лист 1").Range("e31").Value = " Пятница "

                                              Case 6

                Sheets(" Лист 1").Range("e31").Value = " Суббота "

                                               Case 7

            Sheets(" Лист 1").Range("e31").Value = " Воскресенье "

                               Case Else is<=0, is>7

Sheets("Лист1").Range("e31").Value = "Не день недели"

                                        End Select

                                          End Sub

                                                       Циклы.

 

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

1. Вычисляемые

Логически прерываемые

3. Объектного типа

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

Рассмотрим два вычисляемых цикла: For .. Next и For Each .. Next. Вычисляемые циклы разделяются Visual Basic с помощью циклической структуры For-Next и  

For Each-Next.

                                              Цикл For… Next

             For переменная_цикла = начало To конец Step шаг

                                                  . блок кода

                                                      Exit For

                                                    блок кода

                                          Next переменная _цикла

В данном случае переменная_цикла является именем переменной, которая считает количество шагов цикла. Переменные начало и конец определяют начальное и конечное значение переменная_цикла, а шаг – величину наращивания переменная_цикла после каждого выполнения цикла.

Когда в программе встречается цикл For-Next, переменная_цикла получает значение начало, затем выполняется блок кода вплоть до оператора Next. Далее переменная_цикла увеличивается на величину шаг и сравнивается со значением конец. Если значение переменная_цикла больше, чем значение конец, то цикл прерывается и управление переходит к оператору, следующему за оператором Next. Если значение переменная_цикла меньше или равно значению конец, то блок кода цикла выполняется ещё раз. Так продолжается до тех пор, пока значение переменная_цикла не станет больше значения конец.

Когда встречается оператор Exit For, цикл немедленно прерывается и управление переходит к оператору, следующему за оператором Next. Обычно оператор Exit For применяется для прекращения процесса поиска чего-нибудь, когда вы искали это циклически и нашли.

Если зарезервированное слово Step и величина шаг опущены, то величина переменная_цикла наращивается на 1 после каждого шага цикла. Если величина конец меньше величины начало и величина шаг отрицательна, цикл считается по убывающей, а не по возрастающей.

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

После завершения цикла значение счётчика больше значения конец (или меньше значения конец, если цикл считался по убывающей). Этот фактор удобно использовать, чтобы определить, завершился ли цикл нормально или был преждевременно прерван оператором Exit For.

 

                                       Цикл For Each…Next

Данный вид цикла называется объектным и предназначен для обработки элементов в выделенном наборе. Циклы объектного типа реализуются структурой For Each...Next. Процесс выполнения данного цикла аналогичен циклу For…Next. Однако, в качестве переменной цикла используется не счётчик, определяющий количество повторов, а объект из выделенного набора. В качестве набора может быть использована как область ячеек, так и массив.

                                 For Each < элемент > in < набор >

                                                <Тело цикла>

                                                Next <элемент>,

где <элемент> и <набор> являются переменными типа Variant.

В этом синтаксисе элемент представляет собой переменную типа Variant, что обеспечивает возможность содержать объект. Переменная набор является некоторым набором объектов. В процессе выполнения цикла объект выбирается из набора и помещается в переменную элемент, и это позволяет использовать переменную элемент в блоке кода цикла для осуществления необходимых действий с объектом. Аналогично циклу For...Next оператор Exit For прерывает цикл до его окончания.

Цикл Do - Loop является наиболее универсальным из логически прерываемых циклов. существуют четыре конфигурации этого цикла: условие True в начале, условие True в конце, условие False в начале и условие False в конце. Ниже приведен синтаксис всех четырех конфигураций:

’ Условие True в начале.                 ’ Условие False в начале.                                                           



2019-11-13 244 Обсуждений (0)
Application. Workbooks (“ Отчет ”). Worksheets (“ Май ”). Rows (2). Delete 0.00 из 5.00 0 оценок









Обсуждение в статье: Application. Workbooks (“ Отчет ”). Worksheets (“ Май ”). Rows (2). Delete

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (244)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.011 сек.)