2014-08-05 2 views
1

У меня есть эта очень странная ситуация. Код работает в предыдущем подразделении, но в другом - ничего не делает. Я углубился и узнал, что массив кажется пустым. Как это возможно:Array возвращает пустые данные

Sub Knop1_Klikken() 
Dim cbm_cnt, cbm_xnt, cbm_c, cbm_r As Integer 
cbm_xnt = 1 
cbm_cnt = 0 
cbm_r = 1 
cbm_c = 1 
Dim cbm_Arr() As Variant ' declare an unallocated array. 
Worksheets("Cbm").Activate 

cbm_lrow = Worksheets("totallist").Cells.SpecialCells(xlCellTypeLastCell).Row 
cbm_lcol = Worksheets("totallist").Cells(1, Columns.Count).End(xlToLeft).Column 

cbm_Arr = Range(Sheets("totallist").Cells(1, 1).Address, Sheets("totallist").Cells(cbm_lrow, cbm_lcol).Address) 

For cbm_r = 1 To UBound(cbm_Arr, 1) ' First array dimension is rows. 
    For cbm_c = 1 To UBound(cbm_Arr, 2) ' Second array dimension is columns. 
     If Worksheets("totallist").Cells(cbm_r, 9).Value = "Cbm" Then 
      cbm_cnt = cbm_cnt + 1 
      If cbm_cnt = 10 Then 
       cbm_xnt = cbm_xnt + 1 
       cbm_cnt = 1 
      End If 
      Worksheets("Cbm").Cells(cbm_xnt, cbm_cnt).Value = cbm_Arr(cbm_r, cbm_c) 
      Worksheets("Cbm").Cells(cbm_xnt, 7).Value = "" 
     End If 

    Next cbm_c 
Next cbm_r 
End Sub 

В коде cbm_Arr(cbm_r, cbm_c) кажется пустым.

Что делает код предполагает, чтобы сделать: В листе называется «totallist» Я ищу в колонке-I для Кодекса кого. Если этот код найден, он копирует строку в другом листе под названием «cbm». Что я делаю не так?

Добавить: Когда я делаю это

Worksheets("Cbm").Cells(cbm_xnt, cbm_cnt).Value = "x" 

Тогда я колонна получает «х» в клетках. Массив не показывает ...

NB: cbm_lrow = 511 и cbm_lcol = 9

+0

Что значения '' cbm_lrow' и cbm_lcol' во время отладки? – MP24

+0

cbm_lrow = 511 и cbm_lcol = 9 – Tarik

ответ

2

Range функции используется для активного листа, а не ваш totallist листа. Вы должны использовать полное имя листа:

With Sheets("totallist") 
    cbm_arr = .Range(.Cells(1, 1).Address, .Cells(cbm_lrow, cbm_lcol).Address).Value 
End With 

или

cbm_Arr = Sheets("totallist").Range(Sheets("totallist").Cells(1, 1).Address, Sheets("totallist").Cells(cbm_lrow, cbm_lcol).Address).Value 
Смежные вопросы