2017-06-01 97 views
0

我是相當新的VBA和與計算器的指導幫助下,我正在學習。 我試圖複製單元格的四個不同範圍(本質上是動態的,但都有着相同的行號,但不同的列)(來源圖書應當是開放的,用戶可以選擇在特定順序的範圍內),使得同樣可以按照相同的順序粘貼到目標工作簿。 我無法連接樣品源工作簿(在未來會更名)和目標工作簿,因爲我在這裏是新手。 源本書包含各種山坳一樣,slno,ACCT沒有,名字,AMT,IFSC,言論,欠款等和無行可能會改變。 目標本書包含了,只有四個colums一樣,AMT,ACCT沒有,姓名和IFSC以相同的順序。複製動態範圍粘貼到活動工作簿,在尖銳的地方

從源頭書,我需要,ACCT,IFSC,名稱和AMT山坳數據將在目標工作簿,即,AMT,ACCT沒有,名稱和IFSC粘貼。

我試圖用這個論壇下面的代碼...

但是,它只複製柱A至G,而不是動態的。我希望,它可以要求用戶輸入所有四個範圍。

感謝..

Private Sub CommandButton1_Click() 

    Dim excel As excel.Application 
    Dim wb As excel.Workbook 
    Dim sht As excel.Worksheet 
    Dim f As Object 

    Set f = Application.FileDialog(3) 
    f.AllowMultiSelect = False 
    f.Show 

    Set excel = CreateObject("excel.Application") 
    Set wb = excel.Workbooks.Open(f.SelectedItems(1)) 
    Set sht = wb.Worksheets("Sheet1") 

    sht.Activate 

    sht.Columns("A:G").Copy 
    Range("A1").PasteSpecial Paste:=xlPasteValues 

    wb.Close 

End Sub 

回答

0

如果您的代碼工作,你可以通過添加Range("A1").PasteSpecial Paste:=xlPasteValueswb.close之間的代碼刪除不需要的列。

Dim cel As Range 

    With ThisWorkbook.Sheets(1) 
     For Each cel In Intersect(.UsedRange, .[1:1]) 
      If cel.Value2 = "" Or InStr(1, "amtacct nonameifsc", cel.Value2) = 0 Then 
       cel.EntireColumn.Delete 
      End If 
     Next 
    End With 
+0

感謝您的回覆..但是,我想保持col完好無損... – santhosh

相關問題