Не присваивается непоследовательный 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5