根据用户表单输入复制粘贴数据

时间:2019-10-14 02:23:43

标签: excel vba header copy-paste

您好,谢谢。我过去两周正在学习excel-vba,以完成上级提供的任务,并且遇到了一些我不知道如何解决的问题。

我有一个工作簿,其中包含从ms Access导入的产品数据的记录集,并且此工作簿包含一个用户窗体。通过用户表单,用户可以根据用户表单标准搜索所需的数据,然后将其粘贴到目标工作簿上。在原始资料中,标题位于第三行。

源工作簿包含已执行的所有测试。有两种类型的测试前后数据。使用与测试前数据相同的产品名称发布数据以验证结果。

我的问题是:

  1. 我具有将数据从源工作簿复制并粘贴到目标工作簿的代码,但是我不知道如何以编程方式设置标题,标题包含将近54列,并且我想排除1,3,4,5,6列,7,8,9。

2。正如我之前提到的,为了验证结果,可以将发布数据执行两次以上,我需要获取最新数据并删除发布数据的重复项。而且我还需要计算进行了多少次后期测试,其中包括我已删除的数据。

  1. 我的代码
        For x = 0 To Me.LineCheckBox.ListCount - 1 'Count the listbox item
            If LineCheckBox.Selected(x) = True Then 'check item selected on the listbox
                For i = 1 To LastRow
                    Set rwSrc = SourceSheet.Rows(i)
                    If rwSrc.Cells(4).Value = Fab Then 
                        If rwSrc.Cells(5).Value = LineCheckBox.List(x) Then 'check selected item with cell value
                            If rwSrc.Cells(6).Value = Year Then
                                If rwSrc.Cells(7).Value = WW Then
                                    If rwSrc.Cells(9).Value = Test Then
                                        erow = DestSheet.Cells(DestSheet.Rows.Count, 1).End(xlUp).Offset(1, 0).Row
                                        With DestSheet.Rows(erow) 
                                            'set the header which I dont how
                                            'Defined pre and post data which I dont know
                                            .Cells(1).Value = rwSrc.Cells(2).Value
                                            .Cells(2).Resize(1, 54) = rwSrc.Cells(10).Resize(1,
54).Value
                                        End With 
                                    End If
                                End If
                            End If
                        End If
                    End If
                Next i
            End If
        Next x
    End If

到目前为止我的输出 my output

我想要的输出 target output

请让我知道我尝试做的事情是否不可能

0 个答案:

没有答案