2012-07-29 27 views
0

我有一个excel vba问题,我试图解决,并在搜索互联网和许多论坛后,我有不成功。VBA代码查找一个文件夹中的文件组,总是以相同的顺序,并将特定的单元格粘贴到主文件中

问题1:如果a2中的单元格显示Brian Johnson(甚至是BrianJohnson),是否可以打开BrianJohnson.xlsx文件?将会有大约30个文件,我想这样打开,这样主文件可以在其他工作表中使用单元格引用,而且事情不会变得棘手。

 Sub aaron_gather() 
' 
' aaron_gather Macro 
Dim bestandopen 
Application.ScreenUpdating = False 
On Error Resume Next 'if there are no 12 sheets 
bestandopen = Dir("H:\Americorps\*") 
    Do Until bestandopen = "" 
     If bestandopen = "" Then Exit Do 
     If Not bestandopen = "Americorps Master Sheet 1.xlsm" Then 
     Workbooks.Open "H:\Americorps\" & bestandopen 
    ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1) = ActiveWorkbook.Name 
     For i = 1 To 12 
      ThisWorkbook.Sheets("Total Hours").Cells(Rows.Count, 1).End(xlUp).Offset(, i) = ActiveWorkbook.Sheets(i).Range("E43") 
     Next i 
     ThisWorkbook.Sheets("Total Hours").Columns.AutoFit 
    Workbooks(bestandopen).Close 
End If 
     bestandopen = Dir 
    Loop 
End Sub 
+0

看起来你在你的代码一切answe问题1。目前还不清楚你是否有其他问题... – 2012-07-30 03:53:39

+0

嘿蒂姆,我想我的问题没有被正确写入,我将如何打开文件brianjohnson.xlsx当我的主表说布赖恩约翰逊和地方的所有数据我收集在第11行的主表。此宏根据文件夹中的顺序复制和粘贴文件。我希望订单始终保持一致。 – 2012-07-30 17:49:28

回答

0

编译,未经测试...

Sub Test() 

Const FLDR_PATH As String = "H:\Americorps\" 
Dim c As Range, wbSource As Workbook 
Dim shtTH As Worksheet, i As Integer 
Dim cellTH As Range, filepath As String 

    Set shtTH = ThisWorkbook.Sheets("Total Hours") 

    For Each c In shtTH.Range("A2:A10") 'are names on total hours sheet? 

     filepath = FLDR_PATH & Replace(c.Value, " ", "") & ".xlsx" 

     If Len(Dir(filepath, vbNormal)) > 0 Then 
      c.Font.ColorIndex = xlAutomatic 
      Set wbSource = Workbooks.Open(filepath, , True) 'readonly 

      For i = 1 To 12 
       'copy values to same row as filename source 
       c.Offset(0, i).Value = _ 
        wbSource.Sheets(i).Range("E43").Value 
      Next i 

      wbSource.Close False 
     Else 
      c.Font.Color = vbRed 'file not found 
     End If 

    Next c 

End Sub 
+0

filepath = FLDR_PATH&Replace(c.Value,“”,“”)&“.xlsx”给我FLDR_PATH带来麻烦,说需要一个常量表达式 – 2012-07-30 22:38:55

+0

我没有看到那个错误... – 2012-07-30 23:09:16

+0

奇怪,我第四次尝试,它工作得很好,谢谢你的所有帮助时间! – 2012-07-31 00:17:25

相关问题