2017-04-13 191 views
0

下面的代碼將掃描每列,並將屬於條件(SEA,CUA等等和紅色)的整行復制到名爲sheet 「文件共享」。 (這是中途完成!!)VBA:宏將條件下的單元格複製到新選項卡

我想現在做兩件事情,而不是複製整行,我想它從源表複製(請參閱示例dataset1)目標系統(應用程序),用戶ID和角色名稱添加到目標工作表「Fileshares」(請參閱​​示例數據集2),以查找與條件匹配的每個單元格。只有粗體標題需要填寫。對於「操作」列,「刪除」需要放入每個有數據的行中。

此外,我想動態地搜索列到第n列(工作表中的最後一列),而不是硬編碼變量「k」。

任何幫助,見解或建議將不勝感激。謝謝!

Example dataset1Example dataset2

Sub BulkUpload() 
Dim rngCell As Range 
Dim lngLstRow As Long 
Dim keywords() As String, maxKeywords() As String 
Dim totalKeywords As Integer, i& 
Dim ws As Worksheet, resultsWS As Worksheet 



Sheets.Add 
ActiveSheet.Name = "FileShares" 

Call Template 


Set ws = Sheets("Sheet1") 
Set resultsWS = Sheets("FileShares") 


totalKeywords = 8 
ReDim keywords(1 To totalKeywords) 
ReDim maxKeywords(1 To totalKeywords) 

maxKeywords(1) = "SEA" 
maxKeywords(2) = "CUA" 
maxKeywords(3) = "CCA" 
maxKeywords(4) = "CAA" 
maxKeywords(5) = "AdA" 
maxKeywords(6) = "X" 
maxKeywords(7) = "CUA" & Chr(10) & "SEA" 
maxKeywords(8) = "CCA" & Chr(10) & "CUA" & Chr(10) & "SEA" 


lngLstRow = ws.UsedRange.Rows.Count 
Worksheets("FileShares").Select 


j = 6 
p = 1 
q = 6 

Dim k&      ' create a Long to use as Column numbers for the loop 
For k = 9 To 50 
    With ws 
     For Each rngCell In .Range(.Cells(8, k), .Cells(lngLstRow, k)) 

      For i = LBound(maxKeywords) To UBound(maxKeywords) 
       If rngCell.Value = maxKeywords(i) And rngCell.Interior.ColorIndex = 3 Then 
       resultsWS.Cells(1000, k).End(xlUp).Offset(j + p, 0).EntireRow.Value = rngCell.EntireRow.Value 

      j = q + p - 7 'Used to start at row 8 and every row after 
      End If 
     Next i 
    Next rngCell 

End With 
Next k 
End Sub 
+1

所以,基本上你得到了@BruceWayne來爲你寫代碼(http://stackoverflow.com/a/35515223/1153513),現在你又想讓另外一個用戶在這裏爲你編碼?如果您嘗試**來自己實現新功能,那麼您的努力如何? – Ralph

+0

是的,BruceWayne去年幫了我很多,我非常感謝!我已經做了一些改變,我想出瞭如何改變。你不會相信我花了多長時間才能按照我想要的方式獲得膠印。我試圖改變整個行的複製方式,而是改變特定的單元格,但我沒有做任何修改。我在這裏嘗試!謝謝拉爾夫。 – Vince

回答

0

Excel可以幫助你寫你的宏!使用macro recorder,手動執行操作。錄音機將您的點擊和按鈕轉換爲VBA。

一旦記錄,step through你的代碼。 VBA的IDE包括一個偉大的功能。按F8鍵可以一次將代碼前移一行。這將幫助您找出錄製的宏的每個部分的功能。 重要提示:拆分屏幕,以便您可以看到Excel和VBA窗口。這將有助於掌握代碼,因爲您會看到每條線對UI的影響。

當您發現一行您不明白的代碼時,請參閱Microsoft's documentation。大多數項目包括一個工作示例,以及一個解釋。

您可以學習如此多的技術。但是有一個限制。如果您無法手動執行操作,則無法錄製。要把你的技能提高到一個新的水平,我會推薦(按順序):

  1. 參加培訓課程。
  2. 閱讀book
  3. 閱讀blogs

儘管互聯網包含大量的信息,但大部分信息都是以大小爲單位的大塊。課程和書籍詳細介紹基礎知識,爲您提供解決這些問題所需的工具。

我喜歡書籍Wrox。但我建議您在購買前預覽一兩頁。我討厭以一種我不喜歡的風格寫作的書。

+0

非常感謝您的目標數據。這一步應該會幫助我很多。我在很多年前就開始了一門編程類的入門課程,所以也許通過它可能對我最有意義。 – Vince

相關問題