如果单元格包含数据,则将数据向下偏移单元格
Offset data down a cell if cell contains data
我需要修改以下代码以根据单元格是否包含最多 5 个数据来动态偏移。
然后如果超过 5,我希望它显示一个消息框来显示错误。
我有这个工作 VB 代码:
Evaluate("OFFSET(INDEX(B:B,MATCH(""" & Me.Pool_Numbers.Value & """,A:A,0)),1,0)") = Change_Pool.Value
我希望它看起来像这样,但我不知道如何实现它。
for every cell that contains data,
set offset value +1
Evaluate("OFFSET(INDEX(B:B,MATCH(""" & Me.Pool_Numbers.Value & """,A:A,0)), * OFFSET AMOUNT * ,0)") = Change_Pool.Value
If offset > 5
msgbox "You cannot do this blablabla"
此上下文中的 Evaluate 方法 returns 一个 Range 对象。因此,我们可以将结果范围分配给一个对象变量,然后我们可以设置一个 For/Next 循环来检查前五个单元格是否有空单元格,可以在其中输入所需的值。
Dim targetCell As Range
Set targetCell = Evaluate("OFFSET(INDEX(A:A,MATCH(""" & Me.ComboBox1.Value & """,B:B,0)),1,0)")
Dim emptyCellFound As Boolean
emptyCellFound = False
Dim i As Long
For i = 0 To 4
If Len(targetCell.Offset(i, 0).Value) = 0 Then
targetCell.Offset(i, 0).Value = Change_Pool.Value
emptyCellFound = True
Exit For
End If
Next i
If Not emptyCellFound Then
MsgBox "No empty cell found!", vbExclamation
End If
我需要修改以下代码以根据单元格是否包含最多 5 个数据来动态偏移。
然后如果超过 5,我希望它显示一个消息框来显示错误。
我有这个工作 VB 代码:
Evaluate("OFFSET(INDEX(B:B,MATCH(""" & Me.Pool_Numbers.Value & """,A:A,0)),1,0)") = Change_Pool.Value
我希望它看起来像这样,但我不知道如何实现它。
for every cell that contains data,
set offset value +1
Evaluate("OFFSET(INDEX(B:B,MATCH(""" & Me.Pool_Numbers.Value & """,A:A,0)), * OFFSET AMOUNT * ,0)") = Change_Pool.Value
If offset > 5
msgbox "You cannot do this blablabla"
此上下文中的 Evaluate 方法 returns 一个 Range 对象。因此,我们可以将结果范围分配给一个对象变量,然后我们可以设置一个 For/Next 循环来检查前五个单元格是否有空单元格,可以在其中输入所需的值。
Dim targetCell As Range
Set targetCell = Evaluate("OFFSET(INDEX(A:A,MATCH(""" & Me.ComboBox1.Value & """,B:B,0)),1,0)")
Dim emptyCellFound As Boolean
emptyCellFound = False
Dim i As Long
For i = 0 To 4
If Len(targetCell.Offset(i, 0).Value) = 0 Then
targetCell.Offset(i, 0).Value = Change_Pool.Value
emptyCellFound = True
Exit For
End If
Next i
If Not emptyCellFound Then
MsgBox "No empty cell found!", vbExclamation
End If