Excel VBA-运行时1004

Excel VBA-运行时1004,excel,vba,Excel,Vba,我正在尝试这个命令 Sub Name() Dim n As Integer Do Until Cells(2, n) = "" n = n + 1 Cells(2, n).Value = n Loop End Sub 但我收到了“运行时错误1004:应用程序定义或对象定义错误”消息。 我错过了什么 可能子名称不正确,如果列n+1=“”,也可以停止循环 编辑:另一件我忘记尝试的事情是,do-until-cells(1,n)=“” 根据注释,您将永远循环,因为您的单元格将始

我正在尝试这个命令

Sub Name() 
Dim n As Integer
Do Until Cells(2, n) = "" 
    n = n + 1 
    Cells(2, n).Value = n 
Loop
End Sub
但我收到了“运行时错误1004:应用程序定义或对象定义错误”消息。 我错过了什么

可能子名称不正确,如果列n+1=“”,也可以停止循环 编辑:另一件我忘记尝试的事情是,
do-until-cells(1,n)=“”


根据注释,您将永远循环,因为您的单元格将始终具有指定的值,然后检查值。指定当前单元格的值后,移动n增量。那么,你的支票就对了

Sub Name() 
    Dim n As Integer
    n=1 ' initialize N to where you want to start.
    Do Until Cells(2, n) = ""   
        Cells(2, n).Value = n 
        n = n + 1 //move this line to end of loop.
    Loop
End Sub

单元格(2,n)=“
永远不会等于
,因为你总是在填充它-最终你会用完列-你想实现什么?此外,你需要在进入循环之前设置
n
,否则第一行将在循环开始之前失败<代码>直到单元格(2,0)=''导致错误(因为尚未设置n)。但是然后你会有一个循环,当你的整数超过@dwirony注释的限制时,它会在32767次迭代时抛出一个错误并复制粘贴到需要该值的范围内。嘿@dwirony我正在尝试制作一个代码,以编程方式在序列号字段中插入从第一条记录到我拥有的最后一条记录(我不知道哪些单元格将是最后一条记录)的值,这就是我在代码中使用(n,2)的原因。
范围(单元格(2,1),单元格(2,columns.count).end(xltoleft)).value=activesheet.evaluate(“索引(列)(&Range(单元格(2,1)、单元格(2,列.计数)).end(xltoleft)).Address(0,0)和“,”)”
Sub Name() 
    Dim n As Integer
    n=1 ' initialize N to where you want to start.
    Do Until Cells(2, n) = ""   
        Cells(2, n).Value = n 
        n = n + 1 //move this line to end of loop.
    Loop
End Sub