2014-02-16 3 views
0

У меня проблема с вставкой данных на разные листы. Выполняемая мной программа продолжает сохранять данные в том же листе, хотя я установил его Sheets1/Sheets2. Пожалуйста, помогите, спасибо.Вставить данные в разные листы excel vba

Первая кнопка:

NextRow = ThisWorkbook.Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row + 1 
'Loop through each file in the folder 
For Each objFile In objFolder.files 
'List the name, size, and date/time of the current file 
Cells(NextRow, 1).Value = objFile.Name 
Cells(NextRow, 2).Value = objFile.Path 
Cells(NextRow, 3).Value = Format(objFile.DateLastModified, "dd/mm/yyyy hh:mm:ss") 
'Find the next row 
NextRow = NextRow + 1 
Next objFile 

Вторая кнопка:

NextRow = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row + 1 
'Loop through each file in the folder 
For Each objFile In objFolder.files 
'List the name, size, and date/time of the current file 
Cells(NextRow, 1).Value = objFile.Name 
Cells(NextRow, 2).Value = objFile.Path 
Cells(NextRow, 3).Value = Format(objFile.DateLastModified, "dd/mm/yyyy hh:mm:ss") 
'Find the next row 
NextRow = NextRow + 1 
Next objFile 

С уважением, YY

ответ

0

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

Первая кнопка

With ThisWorkbook.Sheets("Sheet2") 
    NextRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 
    'Loop through each file in the folder 
    For Each objFile In objFolder.Files 
     'List the name, size, and date/time of the current file 
     .Cells(NextRow, 1).Value = objFile.Name 
     .Cells(NextRow, 2).Value = objFile.Path 
     .Cells(NextRow, 3).Value = Format(objFile.DateLastModified, "dd/mm/yyyy hh:mm:ss") 
     'Find the next row 
     NextRow = NextRow + 1 
    Next objFile 
End With 

Вторая кнопка

With ThisWorkbook.Sheets("Sheet1") 
    NextRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 
    'Loop through each file in the folder 
    For Each objFile In objFolder.Files 
     'List the name, size, and date/time of the current file 
     .Cells(NextRow, 1).Value = objFile.Name 
     .Cells(NextRow, 2).Value = objFile.Path 
     .Cells(NextRow, 3).Value = Format(objFile.DateLastModified, "dd/mm/yyyy hh:mm:ss") 
     'Find the next row 
     NextRow = NextRow + 1 
    Next objFile 
End with 

BTW, как я вижу, у вас много повторяющегося кода. Я рекомендую вам использовать дополнительный подпункт с названием листа, как Parametr:

Sub test(sheetName As String) 
    With ThisWorkbook.Sheets(sheetName) 
     NextRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 
     'Loop through each file in the folder 
     For Each objFile In objFolder.Files 
      'List the name, size, and date/time of the current file 
      .Cells(NextRow, 1).Value = objFile.Name 
      .Cells(NextRow, 2).Value = objFile.Path 
      .Cells(NextRow, 3).Value = Format(objFile.DateLastModified, "dd/mm/yyyy hh:mm:ss") 
      'Find the next row 
      NextRow = NextRow + 1 
     Next objFile 
    End With 
End Sub 

и вызвать его для первой кнопки:

Call test("Sheet2") 

и второй кнопки:

Call test("Sheet1") 
+0

Сделал это, спасибо! – whywhy

0

Вы должны qualify Ячейки() ......... как:

Sheets("Sheet1").Cells(NextRow, 1).Value = objFile.Name 

или

Sheets("Sheet2").Cells(NextRow, 1).Value = objFile.Name 

же для всех таких строк кода ...................... В противном случае вам нужно С

+0

Сделал это, Thasnks :) – whywhy

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