2014-06-05 25 views
0

嘗試從其他電子表格導入主電子表格中的數據時遇到了一些麻煩。 我在打開16個電子表格,從每個電子表格中獲取一塊數據並將其粘貼到主電子表格中。然後,我正在尋找將我的單元格引用向下移動12行,然後重複。 這是我遇到麻煩的最後一部分 - 我試圖使用偏移量,但它似乎沒有移動單元格。所發生的只是數據被第一個覆蓋。 PasteStart實際上出現在第二循環使用偏移量移動單元格引用時遇到問題

Sub ImportData() 

Dim wb1 As Workbook 
Dim wb2 As Workbook 
Dim Sheet As Worksheet 
Dim PasteStart As Range 
Dim count As Integer 
Dim name As String 

Set wb1 = ActiveWorkbook 
Set PasteStart = [Sheet1!A1] 

PasteStart = Application.InputBox(prompt:="ENTER a Single Cell Address to paste data or leave it blank to exit", Type:=2) 

If PasteStart = "" Then 
    Exit Sub 
Else 

For count = 1 To 16 

    FileToOpen = Application.GetOpenFilename _ 
    (Title:="Please choose a Report to Parse", _ 
    FileFilter:="Report Files *.xlsx (*.xlsx),") 


     If FileToOpen = False Then 
      MsgBox "No File Specified.", vbExclamation, "ERROR" 
      Exit Sub 
     Else 
      Set wb2 = Workbooks.Open(Filename:=FileToOpen) 

      Sheets("JourneyPlanner").Select 

      PasteStart.Value = Application.InputBox(prompt:="Who's data are you inputting?", Type:=2) 


      ActiveSheet.Range("B132:B139").Copy 
      PasteStart.Offset(1, 0).PasteSpecial xlPasteValues 

      ActiveSheet.Range("C132:C139").Copy 
      PasteStart.Offset(1, 1).PasteSpecial xlPasteValues 

      ActiveSheet.Range("D132:D133").Copy 
      PasteStart.Offset(1, 2).PasteSpecial xlPasteValues 

      ActiveSheet.Range("E132:E133").Copy 
      PasteStart.Offset(1, 3).PasteSpecial xlPasteValues 
    End If 

    Row = Row + 12 
    PasteStart = PasteStart.Offset(12, 0) 
    wb2.Close 

Next count 

End If 

End Sub 

任何想法空值? 在此先感謝

回答

0

PasteStart = PasteStart.Offset(12,0)將設置值PasteStart等於PasteStart.Offset(12,0)的值。您需要使用Set關鍵字來指示您要將變量分配到新範圍。

試試這個:Set PasteStart = PasteStart.Offset(12,0)