我有以下代码:
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/