我对vba来说还很陌生,我面临的一个问题是到目前为止我找不到解决方案。我在工作表“源”中有两个名称列表,我希望将其用于每个循环。如何使用正确的工作表处理这些单元格?
我想访问名为“ Box 变量名”的组合框(例如BoxIAA)和“ 变量名值”形式的关联文本框(例如IAAvalue),并检查所有这些对象的内容,如果对象为空,则删除工作表“源”中右侧的两个单元格(例如D3:E3或G5:H5)。
我的尝试是:
Dim rng As Range, cell As Range
Set rng = Range(Sheets("Source").Range("C2:C4"), Sheets("Source").Range("F2:F5"))
For Each cell In rng
If "Box" & cell.Value <> "" Then
MsgBox "The value is " & "Box" & Range(cell).Value
Else If
'Delete two cells to the right in ws "Source"
End If
Next cell
我知道,我没有正确处理工作表Source中的Cells C2:C4,但是我真的不知道如何正确执行。 如何访问源单元格的内容并寻址内容/单元以供以后使用?
答案 0 :(得分:1)
这是您要尝试的(未体验)吗?
Sub Sample()
Dim rng As Range
Dim aCell As Range
On Error GoTo Whoa '<~~ Need this in case it couldn't find the control
Set rng = Sheets("Source").Range("C2:C4,F2:F5")
For Each aCell In rng
'~~> Use Controls() to work with the control
With Me.Controls("Box" & aCell.Value)
If .Value <> "" Then
MsgBox .Value
Else
'~~> Do what you want
Sheets("Source").Range(aCell.Offset(, 1), _
aCell.Offset(, 2)).Delete shift:=xlLeft
End If
End With
Next aCell
Exit Sub
Whoa:
MsgBox Err.Description
End Sub
您也可以使用If .Value <> "" Then
代替If .ListIndex <> -1 Then
。我假设组合框中没有空白值。