Excel VBA - 从另一个单元格值获取某个范围的单元格行

标签 excel vba

我有以下代码:

Sub Button7_Click()
Worksheets("Contracts").Range("AI2").Value = _
InputBox(Prompt:="registrera kontrakts-id.")
End Sub

使用上述代码时,单元格 AI2 会在“契约(Contract)”表上更新。

但是,我需要从当前工作表的单元格 C2 中的值中获取行号。

我尝试过类似的方法,但不起作用:

Worksheets("Contracts").Range("AI" & C2).Value = _

如何获取“范围”以使用静态列 ID (AI),但从单元格 C2 中选择行?

最佳答案

有很多方法可以做到这一点,可能与您的问题最接近的一种是:

Sub Button7_Click()
    dim myRow as long
    myRow = ActiveSheet.Range("C2")
    ActiveSheet.Range("AI" & myRow).Value = _
    InputBox(Prompt:="registrera kontrakts-id.")
End Sub

另一个是ActiveSheet.Cells(myRow, "AI").Value

在这种情况下,使用它绝对可以,但在许多其他情况下 ActiveSheet is something to avoid .

一般来说,一些“健全性”检查,即 Range("C2") 中的值是否有效可能很有用,只要它是空、文本、负数或零会发生错误。

Sub Button7_Click()

    Dim myRow As Long
    myRow = ActiveSheet.Range("C2")
    
    If Not IsNumeric(myRow) Then
        MsgBox "C2 is not numeric!"
        Exit Sub
    ElseIf myRow <= 0 Then
        MsgBox "C2 is smaller or equal than 0!"
        Exit Sub
    End If
    
    ActiveSheet.Range("AI" & myRow).Value = InputBox(Prompt:="registrera kontrakts-id.")
    
End Sub

关于Excel VBA - 从另一个单元格值获取某个范围的单元格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75993126/

相关文章:

excel - 如果它包含的日期少于昨天,则突出显示整行,不包括周末

excel - VBA从excel公式检测到特定结果时自动显示日期

c# - 如何使用 OleDbDataAdapter 只读取 Excel 文件的第一行?

excel - UserName = Environ$ ("UserName") 无法在最新版本的 Windows 中工作?

excel - 检查形状是否为组(GroupItems 引发错误)

excel - 如何为单独的 Excel 工作表指定要复制到的数据行

excel - 如何使用 PowerShell 导出特定的 Excel 列?

vba - UserForm 中的 Application.Quit 尝试在退出前运行宏的其余部分

vba - 我有两个收藏。如何创建一个提取现有两个集合之间差异的新集合?

VBA excel - 当任一单元格更改时,基于彼此更改两个单元格的值