VBA:宏将条件下的单元格复制到新选项卡

时间:2017-04-13 12:13:32

标签: arrays excel vba excel-vba

下面的代码将扫描每一列,并将属于条件(SEA,CUA等等,并且为红色)的整行复制到名为" FileShares的表格中。" (这是完成的一半!!)

我想现在做两件事,而不是复制整行,我希望它从源表(参见示例数据集1)将目标系统(应用程序),用户ID和角色名称复制到目标表,&# 34;文件共享" (请参阅示例数据集2)了解与条件匹配的每个单元格。只需填写粗体标题。对于"行动"列,删除需要放入每个有数据的行。

另外,我想动态搜索列到第n列(工作表中的最后一列)而不是硬编码变量" k"。

任何帮助,见解或建议都将不胜感激。谢谢!

Example dataset1 Example 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 个答案:

答案 0 :(得分:0)

Excel可以帮助您编写宏!

使用macro recorder,手动执行操作。录音机会将您的点击和按钮转换为VBA。

记录后,step through您的代码。 VBA的IDE包含一个很棒的功能。按F8可以让代码一次前进一行。这将帮助您弄清楚录制的宏的每个部分的作用。 热门提示:拆分屏幕,以便同时查看Excel和VBA窗口。这将有助于掌握代码,因为您可以看到每一行对UI的影响。

当您找到一行不明白的代码时,请参阅Microsoft's documentation。大多数项目包括一个工作示例,以及解释。

你可以学习这种技术。但是有一个限制。如果无法手动执行操作,则无法录制。为了将你的技能提升到新的水平,我建议(按顺序):

  1. 参加培训课程。
  2. 阅读book
  3. 阅读blogs
  4. 虽然互联网包含大量信息,但大多数信息都是一口大小的。课程和书籍详细介绍了基础知识,为您提供解决这些问题所需的工具。

    我喜欢Wrox发布的书籍。但我会建议您在购买之前预览一两页。我讨厌阅读以我不喜欢的风格写的书。