2013-02-04 140 views
0

我正在根據給定列(G)中每行的值生成列表。目前該列表可以複製整行並完美地工作。如果列G包含所需文本(「卡片」),並將它們放在另一個電子表格的列表中並且沒有間隔,它將拉取所有行。宏:給定行X從該行復制特定單元格到新工作表

問題是我希望列表只包含每行包含「卡」的幾列中的信息,而不是整行。

有沒有辦法讓我的代碼從行中拉出特定的單元格而不是使用.EntireRow函數並複製整行?

爲了澄清,此電子表格由多個不同的用戶定期更新,因此信息不是靜態的。行添加和更改頻繁並偶爾刪除。因此,我不能將單元格值從原始工作表複製到新列表中。

Sub AlonsoApprovedList() 

    Dim cell As Range 

    Dim NewRange As Range 

    Dim MyCount As Long 

    Dim ExistCount As Long 

    ExistCount = 0 

    MyCount = 1 

'----For every cell in row G on the ESI Project Data sheet----' 

    For Each cell In Worksheets("ESI Project Data").Range("G6:G5000") 

    If cell.Value = "Card" Then 

     ExistCount = ExistCount + 1 

     If MyCount = 1 Then Set NewRange = cell.Offset(0, -1) 

     '----Sets up a new range to copy all data from the row if column G in that row contains the value in question----' 

     Set NewRange = Application.Union(NewRange, cell.EntireRow) 

     MyCount = MyCount + 1 

    End If 

    Next cell 

    If ExistCount > 0 Then 

     NewRange.Copy Destination:=Worksheets("Alonso Approved List").Range("A3") 

    End If 

End Sub 

其他信息:

  1. G列下拉含有一個幾個 項數據驗證列表。完整列表位於不同的工作表中。用戶可以使用 每個訂單項並從特定類別中進行選擇。

  2. 問題的其他列包含訂單項的名稱,類別 (與G列相同),貨幣值和日期。

  3. 上面的代碼循環遍歷「ESI項目數據」工作表中的列表,並通過單元格G中的值檢測行。它每次在單元格G(「卡」)中關鍵字時複製整行在這個例子中。我正在使用它來生成按關鍵字分組的單個列表。我只是想讓它拉單個單元格,而不是像目前那樣使用.EntireRow函數。我不知道如何去做。

謝謝你的時間!

回答

1

未經測試...

Sub AlonsoApprovedList() 

Dim cell As Range 
Dim rngDest As Range 
Dim i As Long 
Dim arrColsToCopy 

    arrColsToCopy = Array(1, 3, 4, 5) 
    '----For every cell in row G on the ESI Project Data sheet----' 
    Set rngDest = Worksheets("Alonso Approved List").Range("A3") 

    Application.ScreenUpdating = False 

    For Each cell In Worksheets("ESI Project Data").Range("G6:G5000").Cells 

     If cell.Value = "Card" Then 

      For i = LBound(arrColsToCopy) To UBound(arrColsToCopy) 
       With cell.EntireRow 
        .Cells(arrColsToCopy(i)).Copy rngDest.Offset(0, i) 
       End With 
      Next i 

      Set rngDest = rngDest.Offset(1, 0) 'next destination row 

     End If 

    Next cell 

    Application.ScreenUpdating = True 

End Sub 
+0

這工作完美,我不能夠感謝你!我非常感謝你的時間和幫助。 – TMF

0

你好是沒有辦法,我可以通過點擊一個按鈕,使用特定的細胞複製到另一個工作簿中的代碼。

這裏就是我想要做的,

從工作簿1,我需要從以下細胞 我對細胞A40 B列信息,以A69 我對單元格B2 B欄信息複製信息,B3 ,b4,b8,9,10,11,12,13,14,15和b40到b69 我有關於單元格b的列D信息, 我有單元格b1,b2,b3,b4的列G信息

這一切我需要將它發送到workbook2具有相同的單元格分配給此特定的信息。

希望我讓自己清楚。

+1

如果你想問一個問題,請使用'Ask Question'按鈕,它就在頂部 – Leeor

相關問題