powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBAscript
4 сообщений из 4, страница 1 из 1
VBAscript
    #34108686
Guest2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Имеется VBAscript для создания отчета.Вытягиваю данные и хочу прорисовать таблицу(ExcelWorksheet.Range("B4:C865").Select). Все получается только область прорисовки хотелось создавать автоматически тоесть чтобы менялась в зависимости от кол-ва строк .Подскажите как написать цикл для
Range, а то в VBA не силен.Заранее спасибо

Sub agnlist

Set ExcelApplication = CreateObject("Excel.Application")
Set ExcelWorkbook = ExcelApplication.Workbooks.Add'
Set ExcelWorksheet = ExcelWorkbook.Worksheets(1)
ExcelWorksheet.Name = "Èñõîäíûå äàííûå"
ExcelApplication.Sheets("Èñõîäíûå äàííûå").Select


ExcelWorksheet.Range("B2")="ÔÀÌÈËÈß"
ExcelWorksheet.Range("C2")="ÈÌß"
ExcelWorksheet.Range("B3")="1"
ExcelWorksheet.Range("C3")="2"
ExcelWorksheet.Range("D2")=MyValue
str_num = 1
q = "select agnname ,agnfirstname from agnlist "
Query.Sql.Text = q
Query.Open
If Query.IsEmpty Then
MsgBox "Äàííûõ íåò"
Query.Close
Call ExcelWorkbook.Close(0,0,0)
exit sub
end if
Query.First

I = 4
While Not Query.EOF
ExcelWorksheet.Range("B"+CStr(I)) = Query.FieldByName("agnname").Value
ExcelWorksheet.Range("C"+CStr(I)) = Query.FieldByName("agnfirstname").Value
Query.Next
I = I + 1
wend


ExcelWorksheet.Range("B2:C3").Select
'-------------------------------------------------------------------------------
ExcelApplication.Selection.Borders(5).LineStyle = -4142
ExcelApplication.Selection.Borders(6).LineStyle = -4142
With ExcelApplication.Selection.Borders(7)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(8)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(9)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(10)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(11)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(12)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With



ExcelApplication.Selection.Font.Bold = True
ExcelApplication.Selection.Interior.ColorIndex = 15
ExcelApplication.Selection.HorizontalAlignment = 3
'-------------------------------------------------------------------------------


ExcelApplication.Columns("B:B").EntireColumn.AutoFit
ExcelApplication.Columns("C:C").EntireColumn.AutoFit



ExcelWorksheet.Range("B4:C865").Select
'-------------------------------------------------------------------------------

'
ExcelApplication.Selection.Borders(5).LineStyle = -4142
ExcelApplication.Selection.Borders(6).LineStyle = -4142
With ExcelApplication.Selection.Borders(7)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(8)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(9)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(10)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(11)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
With ExcelApplication.Selection.Borders(12)
.LineStyle = 1
.Weight = 2
.ColorIndex = -4105
End With
ExcelApplication.Visible = True

End Sub
...
Рейтинг: 0 / 0
VBAscript
    #34110950
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в начале процедуры лучше I объявить так:
Dim I as Long

и как минимум, если строки точно есть, можно, вместо
Код: plaintext
ExcelWorksheet.Range("B4:C865").Select
так
Код: plaintext
ExcelWorksheet.Range("B4:C" & I -  1 ).Select
...
Рейтинг: 0 / 0
VBAscript
    #34111049
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergeyvgв начале процедуры лучше I объявить так:
Dim I as LongНикаких As! VBscript использует только Variant.

Такие строчки
ExcelWorksheet.Range("C2")="ÈÌß"
Лучше заменять такими
ExcelWorksheet.Cells(2,3)="ÈÌß"
Особенно в цикле.
...
Рейтинг: 0 / 0
VBAscript
    #34111106
Guest2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.Все получилось.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBAscript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]