Общее·количество·просмотров·страницы
воскресенье, 19 февраля 2012 г.
Програмное закрытие экселя.
Sub Close_Excel()
Dim strClsExl As String
strClsExl = "TASKKILL /F /IM Excel.exe"
Shell strClsExl, vbHide
End Sub
findsarfaraz.blogspot.com
четверг, 16 июня 2011 г.
Reference object by codename
wkbk - workbook.codename
Reference to workbook:
wkbk.[properties/methods of workbook]
sh - worksheets.codename
Reference to worksheet:
sh.[properties/methods of worksheet]
Reference to specific worksheet of specific workbook:
wkbk.VBProject.VBComponents(sh)
Reference to workbook:
wkbk.[properties/methods of workbook]
sh - worksheets.codename
Reference to worksheet:
sh.[properties/methods of worksheet]
Reference to specific worksheet of specific workbook:
wkbk.VBProject.VBComponents(sh)
четверг, 5 мая 2011 г.
Личная книга макросов для разных экселей.
Если у вас на компьютере установлены разные версии Microsoft Excel. Например Excel 2003 & Excel 2007, то при открытии Excel 2003 может возникнуть проблема для считывания файла личной книги макросов. Для того, чтобы excel 2007 мог читать файл личной книги макросов, без проблем для excel 2003, нужно поместить эти файлы C:\Program Files\MS Office 2007\Office12\XLSTART.
четверг, 12 августа 2010 г.
О нуляхи и сущетвовании
Значит так, господа, давайте разбиремся, что такое ноль, пустой, существут и заполнен...
0 - это ноль, число. [Такое же число, как и любое другое]
"" - это пустая строка. [Такая же строка, как и любая другая]
Null - переменная (ячейка) существует, но значения не имеет
Nothing - переменная (объект) не существует, но существовал когда-то раньше или может существовать в будущем.
Dose Not Exist - переменная не существует, никогда не сущесвовала и не может существовать в будщем.
Для меня, переменная заполнена, если она существует и Not IsNull.
0 - это ноль, число. [Такое же число, как и любое другое]
"" - это пустая строка. [Такая же строка, как и любая другая]
Null - переменная (ячейка) существует, но значения не имеет
Nothing - переменная (объект) не существует, но существовал когда-то раньше или может существовать в будущем.
Dose Not Exist - переменная не существует, никогда не сущесвовала и не может существовать в будщем.
Для меня, переменная заполнена, если она существует и Not IsNull.
пятница, 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)
Подписаться на:
Сообщения (Atom)