Страницы: 1
RSS
вставка в List Box диапазон данных с другой книги
 
Помогите пожалуйста доработать макрос. Моя задача создать прайс, который можно было бы вставить в любую книгу одной папки. Для этого я отдельным файлом создала файл с  формой "прайс". Данные в эту форму должны приходить с диапазона данных в другой книге, с листа который тоже называется "прайс". Но что то не получается..
Код
Private Sub UserForm_Activate()
Dim LastRow As Range
Dim strFName As String
Dim x As Integer
    
strFName = ThisWorkbook.Path & "\расход"
Workbooks.Open strFName
    Me.ListBox1.Clear
  
  LastRow = Workbooks("расход").Sheets("прайс").Cells(Rows.Count, 5).End(xlUp).Row
        x = 0
        For i = 3 To LastRow
            .ListBox1.AddItem ""
            .ListBox1.List(x, 0) = strFName.Sheets("прайс").Cells(i, 5).Value
            .ListBox1.List(x, 1) = strFName.Sheets("прайс").Cells(i, 6).Value
            .ListBox1.List(x, 2) = strFName.Sheets("прайс").Cells(i, 18).Value
            .ListBox1.List(x, 3) = strFName.Sheets("прайс").Cells(i, 19).Value
            .ListBox1.List(x, 4) = strFName.Sheets("прайс").Cells(i, 20).Value
            x = x + 1
        Next
        Windows("расход").Close
End Sub
 
Код
strFName = ThisWorkbook.Path & "\расход.xlsx"
 
пишет invalid or unqualified reference  и выделяет синим  .ListBox1.
Изменено: ALANA - 22.02.2017 00:31:24
 
исправила на  Me.ListBox1.List(x, 0) = strFName.Sheets("прайс").Cells(i, 5).Value, теперь выделяет синим strFName.
 
если убрать выделенное и оставить только  - Me.ListBox1.List(x, 0) = Sheets("прайс").Cells(i, 5).Value, то пишет object variable or With block variable not set... короче голова кругом)
 
У Вас куча ошибок:
Тип переменной последней строки указали неправильный - причём тут Range?
Не указываете, чей ЛистБокс.
Неверная запись открытия книги...
И зачем на событие Активации? Делайте один раз - на инициализацию.
Код
Private Sub UserForm_Initialize()
Dim LastRow As Long
Dim strFName As String
Dim x As Integer
Dim Wb As Workbook
    strFName = ThisWorkbook.Path & "\расход.xlsx"
    Set Wb = Workbooks.Open(strFName)
    Me.ListBox1.Clear
    LastRow = Wb.Sheets("прайс").Cells(Rows.Count, 5).End(xlUp).Row
    x = 0
    For i = 3 To LastRow
        Me.ListBox1.AddItem ""
        Me.ListBox1.List(x, 0) = Wb.Sheets("прайс").Cells(i, 5).Value
        Me.ListBox1.List(x, 1) = Wb.Sheets("прайс").Cells(i, 6).Value
        Me.ListBox1.List(x, 2) = Wb.Sheets("прайс").Cells(i, 18).Value
        Me.ListBox1.List(x, 3) = Wb.Sheets("прайс").Cells(i, 19).Value
        Me.ListBox1.List(x, 4) = Wb.Sheets("прайс").Cells(i, 20).Value
        x = x + 1
    Next
    Windows("расход").Close
End Sub
 
спасибо) все получилось)
Страницы: 1
Наверх