如何将每个循环的信息转移到另一个工作表中

时间:2019-02-01 13:24:09

标签: excel vba

我是一位编程初学者,想问我如何编码才能将信息从一个工作表传递给另一个工作表,但前提是要满足条件。在我的情况下,我有一个名称列表及其各自的工作。我想将名称转移到另一个工作表,但是仅当作业是X时。由于名称和姓氏在不同的列中但在同一行中,所以我还必须找到一种选择作业名称所在行的方法。

For Each Candidate In Sheets("XX").Range("A2:A")
    If Candidate = "Job" Then
       'Copy Name in that same row to Sheets("Job").Range("A" & next free row)
       'Copy Surname in that same row to Sheets("Job").Range("B" & next free row)

    End If
Next Candidate

2 个答案:

答案 0 :(得分:0)

假设名称在A和B列中,而作业在C列中

  Dim R as Range
  dim target as range
  set target = Worksheets("target worksheet name goes here").range("a1") 'or whatever address
  For each r in RAnge("A1:A100")  'alter 100 as appropriate
       if r.offset(0,2) = "target job" then
           target = r
           target.offset(0,1) = r.offset(0,1)
           set target = target.offset(1,0)
       end if
  next r

答案 1 :(得分:0)

Sub transfer_information()
Dim myCell As Range
Dim target As Range
Dim colOffset As Integer
Dim TargetSheetString As String
Dim TargetWorkbookString As String

TargetSheetString = "target worksheet name goes here"
TargetWorkbookString = "target workbook name goes here"

'Uncomment to run with the the active workbook and sheet
'TargetSheetString = ActiveSheet.Name
'TargetWorkbookString = ThisWorkbook.Name

Set target = Workbooks(TargetWorkbookString).Worksheets(TargetSheetString).Range("E2") 'or whatever address
For Each myCell In Range("A1:A100")  'alter 100 as appropriate
    colOffset = 2
     If myCell.Offset(0, colOffset) = "target job" Then
         target = myCell
         target.Offset(0, 0) = myCell.Offset(0, 0)
         target.Offset(0, 1) = myCell.Offset(0, 1)
         target.Offset(0, 2) = myCell.Offset(0, 2)
         Set target = target.Offset(1, 0)
     End If
Next myCell
End Sub

enter image description here