【问题标题】:Selected random rows and do stuff - select multiple row on range选择随机行并做一些事情 - 在范围内选择多行
【发布时间】:2021-12-30 17:03:30
【问题描述】:

这似乎很简单,但我正在努力......
我有这个简单的代码可以根据当前数据从黑色单元格范围中选择整行,这是完全随机的。
因为单元格 F5 F7 F9 F13 是空的,所以它会选择整行。
所以,我希望将第 1 列 [A] 和 8 [H] 的值更改为“Estoque”,颜色为浅蓝色.
我坚持这一点。请帮忙?

 On Error Resume Next
 Columns("H:H").SpecialCells(xlCellTypeBlanks).EntireRow.Select

【问题讨论】:

  • 从您的其他帖子中,我看到您已经努力解决并提出了具体问题。这个问题虽然令人困惑,模糊且过于广泛。您能否展示正在尝试执行您想要的操作的代码(即写入并更改特定单元格的颜色)并解释它没有按照您的目标执行什么操作。否则,您只是要求这里的其他人免费为您编写代码。
  • 您的意思是,H 列中的每个空白单元格和A 列中的每个对应(不一定为空)单元格都应该发生这种情况?还是A 列中的单元格也为空?

标签: excel vba range


【解决方案1】:

SpecialCells-Intersect 组合

Option Explicit

Sub Estoque()
    
    Dim rg As Range
    
    On Error Resume Next
        Set rg = Intersect(Range("A:A,H:H"), _
            Columns("H:H").SpecialCells(xlCellTypeBlanks).EntireRow)
    On Error GoTo 0
    
    If rg Is Nothing Then
        MsgBox "Nope!", vbCritical
        'Exit Sub
    Else
        rg.Value = "Estoque"
        MsgBox "Estoque!", vbInformation
    End If
    
End Sub

【讨论】:

  • 非常感谢。我不知道 Intersect 方法,我被想法困住了。 :-)
  • 不客气。请记住,在处理非连续范围时,您无法成功使用.Resize.Rows.Columns。通常只有.Cells.Offset.EntireRow.EntireColumn。所以Intersect 是一种值得记住的救世主。
猜你喜欢
  • 1970-01-01
  • 2020-07-14
  • 2011-12-28
  • 1970-01-01
  • 2015-07-09
  • 2022-11-13
  • 2012-01-19
  • 2012-12-21
相关资源
最近更新 更多