Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行vba时出现运行时错误1004_Vba - Fatal编程技术网

运行vba时出现运行时错误1004

运行vba时出现运行时错误1004,vba,Vba,我真的很擅长,我遇到了一些问题。我正试图创建一张考勤表,出于安全原因,该考勤表会在一天中定期更新。在一张有所有可能的名字的纸上,我有一个不同公司、名字、营地、房间和现场的专栏。我已经编写了我的代码,这样,如果一个人在现场,那么“现场”列中会出现1,如果他们不在现场,则会出现0。当1出现时,我希望他们的姓名和所有其他信息转移到考勤表中,以便只显示现场的姓名。如果他们在现场,我希望空间是空白的。 我的代码有两个问题: Sub onsite() x = 3 'start at row 3

我真的很擅长,我遇到了一些问题。我正试图创建一张考勤表,出于安全原因,该考勤表会在一天中定期更新。在一张有所有可能的名字的纸上,我有一个不同公司、名字、营地、房间和现场的专栏。我已经编写了我的代码,这样,如果一个人在现场,那么“现场”列中会出现1,如果他们不在现场,则会出现0。当1出现时,我希望他们的姓名和所有其他信息转移到考勤表中,以便只显示现场的姓名。如果他们在现场,我希望空间是空白的。 我的代码有两个问题:

Sub onsite()

    x = 3   'start at row 3


    'start the loop
    Do While Cells(x, 6) <> ""

        'look for data with '1'
        If Cells(x, 6) = "1" Then

        'copy the row if it contains '1'
        Worksheets("Sheet1").Rows(x).Copy

        'go to main ERP.  activate it
        Worksheets("Sheet2").Activate

        **erow = Sheet2.Cells(Rows.Count, 6).End(x1Up).Offset(1, 0).Row**
        'paste data

         '**ERROR OCCURS HERE**
         ActiveSheet.Paste Destination:=Worksheets("Sheet2").Rows(erow)

         End If

         'go to all names and activate
         Worksheets("AllNames").Activate

         'loop through the other rows
         x = x + 1

    Loop

End Sub
Sub-site()
x=3'从第3行开始
'启动循环
“在单元格(x,6)”时执行”
'查找带有'1'的数据'
如果单元格(x,6)=“1”,则
'复制包含'1'的行'
工作表(“表1”)。行(x)。副本
'转到主ERP。激活它
工作表(“表2”)。激活
**erow=Sheet2.单元格(Rows.Count,6).结束(x1Up).偏移量(1,0).行**
'粘贴数据
“**此处发生错误**
ActiveSheet.Paste目标:=工作表(“Sheet2”).行(erow)
如果结束
'转到所有名称并激活
工作表(“所有名称”)。激活
'循环通过其他行
x=x+1
环
端接头
第一个问题是,在到达粗体行后,我收到一条错误“1004”消息,代码停止工作

另一个问题是,我不知道如何将“erow=”更改为当一个人的“站点”列中有0时跳过一行的代码

请帮忙

描述了错误的原因和解决方法

基本上,以编程方式复制和粘贴整行时会出现问题。您必须只选择行中实际使用的单元格。

Sub-site()
Sub onsite()
    Dim x as long, erow as Long
    Dim shtSrc as Worksheet, shtDest as worksheet

    Set shtSrc = Worksheets("Sheet1")
    Set shtDest = Worksheets("Sheet2")
    erow = shtDest.Cells(rows.count, 6).End(xlUp).Row+1

    x = 3       

    Do While shtSrc.Cells(x, 6) <> ""

        If shtSrc.Cells(x, 6) = "1" Then

            shtSrc.Rows(x).Copy shtDest.cells(erow,1)
            erow = erow+1

        End If
        x = x + 1

    Loop

End Sub
暗x和长,暗x和长 尺寸shtSrc作为工作表,shtDest作为工作表 设置shtSrc=工作表(“表1”) Set shtDest=工作表(“表2”) erow=shtDest.Cells(rows.count,6)。End(xlUp)。Row+1 x=3 当shtSrc.Cells(x,6)”时执行此操作 如果shtSrc.Cells(x,6)=“1”,则 shtSrc.Rows(x).复制shtDest.cells(erow,1) erow=erow+1 如果结束 x=x+1 环 端接头