2013-11-01 9 views
0

Первый пользователь, поэтому прошу прощения, если мой вопрос не соответствует рекомендациям формата.VBA - Копирование ряда ячеек (Random Row)

У меня есть несколько листов данных, которые меняют каждый день, что я хочу примирить. В одном конкретном листе список клиентов подробно описывается с информацией о них. В рамках примирения мне нужно выбрать одну из этих компаний в случайных и перечислить некоторые детали из них

Эти данные в колонках 3, 5, 7, 14 и 20.

Ниже я приклеил кода, где я определяю, сколько клиентов есть за один день (последняя строка), и возьмите случайного клиента и перечислите данные.

Однако я продолжаю получать ошибку времени выполнения 450: неправильные аргументы количества или недопустимые присвоения свойств.

Может ли кто-нибудь мне помочь?

'Regency 
     Dim Regrows As Integer 
     Dim RegCust As Integer 
     Dim Regcustomer As Range 

     AgedDebtors.Activate 
     AgedDebtors.Sheets("Regency").Activate 
     Regrows = Range("C" & Rows.Count).End(xlUp).Row 
     RegCust = Int((Regrows - 45 + 1) * Rnd + 45) 

     With AgedDebtors.Sheets("Regency") 
      Regcustomer = Range(Cells(RegCust, 3), Cells(RegCust, 5), _ 
           Cells(RegCust, 7), Cells(RegCust, 14), _ 
           Cells(RegCust, 20)) 
      Regcustomer.Activate 
     Selection.Copy 

     End With 

ответ

1

Вы должны использовать Set при присвоении значения переменной объекта, но ваша основная проблема заключается в Range() не работает так, как вы хотите его здесь.

Set Regcustomer = .Range(Replace("C?,E?,G?,N?,T?", "?", RegCust)) 

Вам не нужно простыню, чтобы быть активным, чтобы скопировать диапазон, и вам не нужно активировать диапазон

Dim Regrows As Integer 
    Dim RegCust As Integer 
    Dim Regcustomer As Range 

    With AgedDebtors.Sheets("Regency") 
     Regrows = .Range("C" & .Rows.Count).End(xlUp).Row 
     RegCust = Int((Regrows - 45 + 1) * Rnd + 45) 
     .Range(Replace("C?,E?,G?,N?,T?","?",RegCust)).Copy 
    End With 
+0

умное решение. Я собирался предложить версию Intersect, но мне это нравится лучше. – tigeravatar

+0

Спасибо Тиму. Ваша помощь очень ценится. – Stu

Смежные вопросы