2015-04-23 3 views
0

Следующий скрипт работает нормально для меня ...Как правильно обработать CountA и вставить результат?

Sub ImportDataFromMultipleFiles() 

Dim Filenames As Variant 
Dim i As Integer 
Application.ScreenUpdating = True 
Range("B2").Select 
Filenames = Application.GetOpenFilename(Filefilter:="Excel Filter (*.csv), *.csv", Title:="Open File(s)", MultiSelect:=True) 

For i = 1 To UBound(Filenames) 
    Workbooks.Open Filenames(i) 
    Range("E1").Select 
    Selection.Copy 
    Windows("test.xlsm").Activate 
    Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=False 
    Workbooks.Open Filenames(i) 
    ActiveWorkbook.Close SaveChanges:=False 
    ActiveCell.Offset(1, 0).Activate 
Next i 
End Sub 

Проблема ... Вместо того, чтобы «E1», я хочу COUNTA (E: E), но не знаю, как получить, что сценарий правильно и вставить результат таким же образом, как приведенный выше сценарий, в отношении одной ячейки.

ответ

0

Хорошо ... Я частично понял мою собственную проблему со следующим сценарием ...

Sub ImportDataFromMultipleFiles() 

Dim Filenames As Variant 
Dim i As Integer 
Application.ScreenUpdating = True 
Range("B2").Select 
Filenames = Application.GetOpenFilename(Filefilter:="Excel Filter (*.csv), *.csv", Title:="Open File(s)", MultiSelect:=True) 

For i = 1 To UBound(Filenames) 
    Workbooks.Open Filenames(i) 
    Range("Z1").Select 
    ActiveCell.FormulaR1C1 = "=COUNTA(C[-21])" 
    Selection.Copy 
    Windows("test.xlsm").Activate 
    Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=False 
    Workbooks.Open Filenames(i) 
    ActiveWorkbook.Close SaveChanges:=False 
    ActiveCell.Offset(1, 0).Activate 
Next i 
End Sub 

Он открывает каждый файл, из списка, выбранный, выбирает и пустую ячейку выбранного файла (Z1) , выполняет COUNTA на столбце E, который отображается в Z1 и Z1, копируется и вставляется в нужное место. Теперь проблема заключается в том, что он приостанавливает каждый другой цикл через скрипт. Есть идеи???

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

  • Нет связанных вопросов^_^