Vba 如何根据其他单元格中的值将单元格范围复制到新工作表

Vba 如何根据其他单元格中的值将单元格范围复制到新工作表,vba,excel,Vba,Excel,如果第J列到第N列中的任何单元格包含单词“Yes”,则需要逐行复制第A列到第I列中的单元格。此外,如果有“是”,我还需要复制列标题名称。例如,如果K列第3行的结果为“是”,则我需要将a列至第3行中的所有单元格复制到新工作表中,从B列第1行开始(如果是第一个“是结果”)。列A,第1行将是来自列K的标题名。我需要它来运行所有“是”结果,每次在单独的工作表上创建一个新行 另外,每次我运行代码时,它都会从头开始变为空白 照片是它前后的样子 之前: 之后: 很抱歉,我还没有看到您的问题。我添加了一些代码

如果第J列到第N列中的任何单元格包含单词“Yes”,则需要逐行复制第A列到第I列中的单元格。此外,如果有“是”,我还需要复制列标题名称。例如,如果K列第3行的结果为“是”,则我需要将a列至第3行中的所有单元格复制到新工作表中,从B列第1行开始(如果是第一个“是结果”)。列A,第1行将是来自列K的标题名。我需要它来运行所有“是”结果,每次在单独的工作表上创建一个新行

另外,每次我运行代码时,它都会从头开始变为空白

照片是它前后的样子

之前:

之后:


很抱歉,我还没有看到您的问题。我添加了一些代码来处理工作簿中的更多数据。但正如你在我的图片中看到的,我返回的是多个是的倍数。请复制此代码并重新运行,然后发布您的结果,也许这将帮助我了解您的问题

Option Explicit
Sub YesToSheet()
Dim r As Long 'Used to loop Rows
Dim totR As Long 'Used to count Rows
Dim c As Long 'Used to loop Columns
Dim dest As Worksheet 'Used for Destination Worksheet
Dim home As Worksheet 'Used for source worksheet
Set home = ActiveWorkbook.ActiveSheet
Set dest = ActiveWorkbook.Worksheets.Add
home.Activate

totR = Application.WorksheetFunction.CountA(Range("A:A"))
    For r = totR To 2 Step -1
        For c = 11 To 14
            If UCase(Cells(r, c).Value) = "YES" Then
                Range(Cells(r, 1), Cells(r, 1).Offset(0, 9)).Copy
                dest.Cells(1, 2).Insert xlShiftDown
                dest.Cells(1, 2).PasteSpecial xlPasteValues
            End If
        Next c
   Next r

   dest.Activate
   totR = Application.WorksheetFunction.CountA(Range("B:B"))
   For r = 1 To totR
        Cells(r, 1).Value = "Stake" & r
   Next r
End Sub


嘿!欢迎来到StackOverflow。请您发布您尝试过的内容,以便我们提供帮助。谢谢-但是,这复制了从J列到N列的数据,这是我不想要的(重要的是,我没有复制整行数据)。加上它只产生了2个结果,而我应该收到5个是的单元格的5个结果。它也没有将“是”单元格的列标题复制到新工作表的开头。它复制所有列标题,而我只需要将一个复制到每行的开头。它仍然在创建2行,而我希望看到5个是的cellsI错误。这确实帮了大忙。唯一剩下的问题是,当同一行中有两个是的答案时,它不会重复。这是丢失的最后一块。我很乐意接受你的帮助。如果在同一行有两个或更多的“是”答案的情况下,你能帮我复印掉最后丢失的部分,那你还在这里苦苦挣扎