Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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_Vba_Excel - Fatal编程技术网

运行时需要行数vba

运行时需要行数vba,vba,excel,Vba,Excel,我希望通过查找“公司名称” 我想创建一个宏,它应该使用下表中的数据更新新表 现在我正在手动更新Sheet1.Cells(421,I-1)。但我希望它是动态的 这里的行号421是在“Booking$”之后的“Company1” 请帮助使代码动态化 Sub UpdateBookings() x = Sheet1.Range("D1").Value For i = 3 To 15 Sheet2.Cells(4, i) = (Sheet1.Cells(420, i -

我希望通过查找
“公司名称”

我想创建一个宏,它应该使用下表中的数据更新新表

现在我正在手动更新
Sheet1.Cells(421,I-1)
。但我希望它是动态的

这里的行号
421
“Booking$”
之后的
“Company1”

请帮助使代码动态化

Sub UpdateBookings()

    x = Sheet1.Range("D1").Value

    For i = 3 To 15
        Sheet2.Cells(4, i) = (Sheet1.Cells(420, i - 1).Value * 1000) / x
    Next i

End Sub

尝试下面的代码,在代码注释中进行解释:

Option Explicit

Sub UpdateBookings()

Dim i As Long, FindRng As Range, RowStart As Long, x

With Sheet1
    x = .Range("D1").Value

    Set FindRng = .Cells.Find(What:="Company1", LookIn:=xlValues, LookAt:=xlWhole)
                                ' found an empty cell in the specified range
    If Not FindRng Is Nothing Then ' Find was successfull
        RowStart = FindRng.Row
    Else ' Find failed
        MsgBox "Unable to find Company1"
        Exit Sub
    End If    

    For i = 3 To 15
        Sheet2.Cells(4, i) = (.Cells(RowStart, i - 1).Value * 1000) / x
    Next i

End With

End Sub

我建议您使用该方法搜索您的公司名称,从而使您的代码具有动态性。微软在上述网站上发布的示例代码应该足以让您开始使用。请记住,本网站不提供免费代码编写服务,而是帮助您编写自己的代码。所以,我希望上面的链接足以让你继续前进。如果遇到更多/不同的问题,请随时返回。可能重复的问题请尝试
rowIndex=Sheet1.Columns(1)。查找(“Company1”).Row
以获取
列1
中值为
Company1
的单元格行号。