excel 应用程序,选择返回错误的范围

utugiqy6  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(104)

当我使用用户窗体调用一个子例程时,它有时会将值放入错误的单元格中。试图确定这是一个bug、逻辑错误还是某种需要解释的用户错误。

Private Sub CommandButton1_Click()
    Dim selRng As Range
    Dim cel As Range
    Set selRng = Application.Selection
    Dim finalString As String

        finalString = ComboBox1.Value & "(" & TextBox1.Value & ")"

        For Each cel In selRng.Cells.SpecialCells(xlCellTypeVisible)
            cel.Value = finalString
        Next cel

End Sub

下面是我的示例代码,用于获取Combobox值并将其拖放到选定的单元格区域中。
它的工作很好,除了两个情况下,我知道:

  • 当前有一个单元格被复制到剪贴板,并且有一个单元格被选中。
  • 当我第一次打开excel文件并尝试运行此命令按钮时

它会将值放在第一行和第一列的每个单元格中,直到出现第一个非空值。
我的目标是让它转到我的选定单元格区域,在正确的条件下它会这样做。
我不确定Application.Selection的调用是如何工作的。
这是VBA/Excel的问题,还是因为我在区域顶部调用了specialCells?
谢谢你的好意,

hmtdttj4

hmtdttj41#

I don't believeSpecialCells在单个单元格中运行良好。请尝试以下操作:

If selRng.CountLarge > 1 Then
    Set selRng = selRng.SpecialCells(xlCellTypeVisible)
End If
    
Dim cel As Range
For Each cel In selRng
    cel.Value = finalString
Next cel

相关问题