以下のコードは、各列をスキャンし、条件(SEA、CUAなど、赤色)に該当する行全体を"FileShares"VBA:新しいタブの条件に該当するセルをコピーするマクロ
ここでは、行全体をコピーするのではなく、ソースシート(例dataset1を参照)からターゲットシステム(アプリケーション)、ユーザーIDおよびロール名を宛先シートに、条件に一致する各セルの「Fileshares」(例dataset2を参照)を入力します。大胆なヘッダーだけが満たされる必要があります。 「アクション」列の場合、データがある各行に「削除」を配置する必要があります。
また、変数「k」をハードコードする代わりに、n列目(シートの最後の列)まで列を動的に検索したいと考えています。
ご意見、ご提案、ご感想をいただければ幸いです。ありがとう!
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
私は基本的に@BruceWayneを[あなたのためのコードを書く](http://stackoverflow.com/a/35515223/1153513)しています。新しい機能を自分で実装しようとする試み**で、あなたの側で何らかの努力をしてはいかがですか? – Ralph
はいBruceWayneは去年私を助けるほど親切でした。私はそれに非常に感謝しています!私はいくつかの変更を加えました。私は変更する方法を考え出しました。あなたは、私が望むやり方でオフセットを取得するのにどれくらいの時間がかかったか信じられません。そして私は行全体のコピーを変更しようとしましたが、代わりに、特定のセルは自分自身を変更しようとしましたが、私は何の根拠も作っていません。私はここにしようとしている!ありがとうラルフ。 – Vince