2015-03-16 2 views
0

Я работаю с кучей файлов csv, которые были втянуты в одну книгу. Я пытаюсь объединить их в один отчет. в конце я помещаю данные в один массив, а затем в один лист.Как сохранить VBA для вывода вывода на активный лист?

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

вот что у меня есть:

Dim starting_cell_range As Range 
Set starting_cell_range = Range(find_last_column("Data_History")) 

Dim n As Integer 
With Worksheets("Data_History") 
    For n = 0 To 18 
     starting_cell_range.Offset(n, 1) = final_array(n) 
    Next n 

End With 

ответ

1

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

Set starting_cell_range = Range(find_last_column("Data_History")) 'this is using the active sheet 

Dim n As Integer 
With Worksheets("Data_History") 'this is the sheet you want 

Так просто переместить строку, которая устанавливает диапазон после того как вы простыню определены. И помните, чтобы использовать .Range вместо Range, так как вы находитесь в with блоке (это как вызов Worksheets("Data_History").Range(...)

Вот полный код:

Dim starting_cell_range As Range 

Dim n As Integer 
With Worksheets("Data_History") 
    Set starting_cell_range = .Range(find_last_column("Data_History")) 
    For n = 0 To 18 
     starting_cell_range.Offset(n, 1) = final_array(n) 
    Next n 

End With 
+0

пригвоздил спасибо гораздо лучше понять настоящее.!. – dwstein

0

Проблема заключается в том, что, когда вы определили диапазон, он автоматически определяется в ActiveSheet. Ввод его в блок «С» не изменяет определение диапазона. Попробуйте следующее:

Dim CurrWB As Workbook 
Dim WSToCopyTo As Worksheet 
Dim starting_cell_range As Range 
Set CurrWB = ActiveWorkbook 
Set WSToCopyTo = CurrWB.Sheets("Data_History") 
Set starting_cell_range = WSToCopyTo.Range(find_last_column("Data_History")) 

Dim n As Integer 
For n = 0 To 18 
    starting_cell_range.Offset(n, 1) = final_array(n) 
Next n 

Блок «С» ничего не делает, поэтому я его вынул.

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