Не присваивается непоследовательный Range для Excel из VB6.0
Формулировка задачи:
Добрый день!
Возникла проблема на позднем подключении из приложения к экселю.
А именно, невозможно присвоить "дырявый" Range объекту. В VBA код работает хорошо.
В VB работает только с непрерывным диапазоном. См. код:
Как ещё можно присвоить непоследовательный Range объекту из VB?
Решение задачи: «Не присваивается непоследовательный Range для Excel из VB6.0»
textual
Листинг программы
Private Sub test()
Dim objExcel As Object
Dim objWorkbook As Object
Dim oRanges As Object
Dim sAddress As String
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("c:\test.xls")
Set ExcelWorkSheet = objWorkbook.Worksheets(1)
sAddress = "A4:R9,A11:R436,A439:R452,A454:R1326" '<= ставим "дырявый" диапазон
a = Split(sAddress, ",")
Set oRange = ExcelWorkSheet.Range(a(0))
For i = 1 To UBound(a)
Set oRange = objExcel.Union(oRange, ExcelWorkSheet.Range(a(i)))
Next
oRange.Select
Set objWorkbook = Nothing
Set objExcel = Nothing
Set oRange = Nothing
End Sub