Значит так, господа, давайте разбиремся, что такое ноль, пустой, существут и заполнен...
0 - это ноль, число. [Такое же число, как и любое другое]
"" - это пустая строка. [Такая же строка, как и любая другая]
Null - переменная (ячейка) существует, но значения не имеет
Nothing - переменная (объект) не существует, но существовал когда-то раньше или может существовать в будущем.
Dose Not Exist - переменная не существует, никогда не сущесвовала и не может существовать в будщем.
Для меня, переменная заполнена, если она существует и Not IsNull.
Общее·количество·просмотров·страницы
четверг, 12 августа 2010 г.
пятница, 6 августа 2010 г.
Вставить данные из одной таблицы в другую по коду товара
Option Base 1
Dim LastColumnI As Integer, LastRowI As Variant
Dim TemplateFullNameS As String, TemplateSheetS As String, TemplateNameS As String
Dim TemplateDataArrV() As Variant, OrderDataArrV() As Variant
Sub Consolidation()
'On Error Resume Next
'открываем щаблон
Set FSO = CreateObject("Scripting.FileSystemObject")
ThisWorkbook.Worksheets("data").Range("a1").Select
TemplateFullNameS = ActiveCell.Offset(0, 1)
Set File = FSO.GetFile(TemplateFullNameS)
TemplateSheetS = ActiveCell.Offset(1, 1)
TemplateNameS = File.Name
Workbooks.Open Filename:=TemplateFullNameS
ActiveWorkbook.Worksheets(CStr(TemplateSheetS)).Range("a1").Select
LastRowI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row
LastColumnI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Column
TemplateDataArrV = ActiveCell.CurrentRegion.Offset(1, 0).Resize(LastRowI - 1, LastColumnI)
Workbooks(TemplateNameS).Close
'============================================================================================
TemplateFullNameS = ActiveCell.Offset(2, 1)
TemplateSheetS = ActiveCell.Offset(3, 1)
TemplateNameS = File.Name
Workbooks.Open Filename:=TemplateFullNameS
ActiveWorkbook.Worksheets(CStr(TemplateSheetS)).Range("a1").Select
LastRowI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row
LastColumnI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Column
OrderDataArrV = ActiveCell.CurrentRegion.Offset(1, 0).Resize(LastRowI - 1, LastColumnI)
ActiveWorkbook.Close
a = UBound(OrderDataArrV, 1)
b = UBound(TemplateDataArrV, 1)
c = LBound(TemplateDataArrV, 1)
For i = 1 To a
For j = 1 To b
'For k = 1 To c
If OrderDataArrV(i, 1) = TemplateDataArrV(j, 7) And OrderDataArrV(i, 2) = TemplateDataArrV(j, 8) Then
TemplateDataArrV(j, 2) = OrderDataArrV(i, 1)
End If
'Next c
Next j
Next i
End Sub
ссылка на задчку
Dim LastColumnI As Integer, LastRowI As Variant
Dim TemplateFullNameS As String, TemplateSheetS As String, TemplateNameS As String
Dim TemplateDataArrV() As Variant, OrderDataArrV() As Variant
Sub Consolidation()
'On Error Resume Next
'открываем щаблон
Set FSO = CreateObject("Scripting.FileSystemObject")
ThisWorkbook.Worksheets("data").Range("a1").Select
TemplateFullNameS = ActiveCell.Offset(0, 1)
Set File = FSO.GetFile(TemplateFullNameS)
TemplateSheetS = ActiveCell.Offset(1, 1)
TemplateNameS = File.Name
Workbooks.Open Filename:=TemplateFullNameS
ActiveWorkbook.Worksheets(CStr(TemplateSheetS)).Range("a1").Select
LastRowI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row
LastColumnI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Column
TemplateDataArrV = ActiveCell.CurrentRegion.Offset(1, 0).Resize(LastRowI - 1, LastColumnI)
Workbooks(TemplateNameS).Close
'============================================================================================
TemplateFullNameS = ActiveCell.Offset(2, 1)
TemplateSheetS = ActiveCell.Offset(3, 1)
TemplateNameS = File.Name
Workbooks.Open Filename:=TemplateFullNameS
ActiveWorkbook.Worksheets(CStr(TemplateSheetS)).Range("a1").Select
LastRowI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row
LastColumnI = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Column
OrderDataArrV = ActiveCell.CurrentRegion.Offset(1, 0).Resize(LastRowI - 1, LastColumnI)
ActiveWorkbook.Close
a = UBound(OrderDataArrV, 1)
b = UBound(TemplateDataArrV, 1)
c = LBound(TemplateDataArrV, 1)
For i = 1 To a
For j = 1 To b
'For k = 1 To c
If OrderDataArrV(i, 1) = TemplateDataArrV(j, 7) And OrderDataArrV(i, 2) = TemplateDataArrV(j, 8) Then
TemplateDataArrV(j, 2) = OrderDataArrV(i, 1)
End If
'Next c
Next j
Next i
End Sub
ссылка на задчку
среда, 28 июля 2010 г.
Deleting All VBA Code In A Project
Deleting All VBA Code In A Project
This code will delete ALL VBA code in a VBProject.
Sub DeleteAllVBACode()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Set VBProj = ActiveWorkbook.VBProject
For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
End Sub
This code will delete ALL VBA code in a VBProject.
Sub DeleteAllVBACode()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Set VBProj = ActiveWorkbook.VBProject
For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
End Sub
четверг, 6 мая 2010 г.
Current Region
Интервал A5:C11 заполнен единицами. Оператор MsgBox Range("A6").CurrentRegion.Row высвечивает
число 5 (номер первой строки интервала)
число 7 (количество строк интервала)
число 11 (номер последней строки интервала
число 6 (номер строки ячейки A6)
число 5 (номер первой строки интервала)
число 7 (количество строк интервала)
число 11 (номер последней строки интервала
число 6 (номер строки ячейки A6)
попытка присвоить 1 переменной типа Boolean
Переменная Y, описанная как Boolean, в процессе выполнения процедуры получила значение 1. Оператор MsgBox "Y=" & Y
выведет в диалоговое окно Y=1
выведет в диалоговое окно Y=True
выведет в диалоговое окно Y=False
вызовет прерывание программы при попытке вывести значение Y из-за несоответствия типа переменной и ее значения
выведет в диалоговое окно Y=1
выведет в диалоговое окно Y=True
выведет в диалоговое окно Y=False
вызовет прерывание программы при попытке вывести значение Y из-за несоответствия типа переменной и ее значения
среда, 5 мая 2010 г.
Правильная инициализация переменной типа Single
21. Процедура предполагает расчет произведения чисел, вводимых пользователем. Для получения произведения описана переменная Prod as Single. В результате вычислений произведение чисел равно нулю. Какая команда инициализации переменных приведет к корректному результату?
Prod="1"
Prod=0
Prod=""
Prod="0"
Prod="1"
Prod=0
Prod=""
Prod="0"
6. В режиме прерывания после обнаружения ошибки в процедуру добавлен новый оператор, начиная с которого можно было бы продолжить выполнение программы. Для этого необходимо установить внутрь этого оператора точку вставки и
выполнить команду Set Next Statement из меню Debug
выполнить команду Show Next statement из меню Debug
выполнить команду Run to Cursor из меню Debug
невозможно продолжить выполнение программы со вставленного оператора. Необходимо начать заново выполнение программы
выполнить команду Set Next Statement из меню Debug
выполнить команду Show Next statement из меню Debug
выполнить команду Run to Cursor из меню Debug
невозможно продолжить выполнение программы со вставленного оператора. Необходимо начать заново выполнение программы
Подписаться на:
Сообщения (Atom)