为打扰你的思想而道歉,但我有qq:
任务: 有一个列我需要找到一个单词(“Kermit”)。然后从“Kermit”中选择单元格直到最后一个单元格。比改变颜色就是这样。
问题: 我想在第一个变量中使用单词Kermit,第二个变量用于最终的最终选择。 我真的很困惑VBA&变量.. 任何的想法?谢谢你提前!
Sub Muppets()
Dim Kermit As Range
Set Kermit = Cells.Find("Kermit")
Dim ooo As Range
Set ooo = Range((Kermit), Range("Kermit").End(xlDown).Offset(-1, 0)).Select
ooo.Interior.Color = rgbLightBlue
End Sub
答案 0 :(得分:0)
这应该做你想要的。会找到' Kermit'在指定的工作表(Kermit)中,然后只将那一列从该点设置为倒数第二行到您的颜色。
Sub Button1_Click()
Dim LastRow As Long
Dim LastCol As Long
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
With ActiveWorkbook.Sheets("Kermit")
LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).column
Set rng1 = .Cells.Find("Kermit", [A1], xlFormulas, xlPart, , , False)
If Not rng1 Is Nothing Then
Set rng2 = Rows(LastRow) 'Range(LastRow, rng1.column)
.Range(Cells(rng1.Row, rng1.column), Cells(LastRow - 1, rng1.column)).Select
End If
End With
Selection.Interior.Color = rgbLightBlue
End Sub
答案 1 :(得分:-1)
我发现在这些情况下要将其分解。如果你可以使用' debug.print'这可以在你开始时提供帮助。
VBA中的range()函数采用起始和结束地址。你有第一个:
Kermit.address
当我查看第二个地址时,我发现它是之前你所拥有的单元格。你的偏移应该是正的 - 这得到我的测试表上的范围:
range(Kermit.address,kermit.offset(1,0).End(xlDown).Address).Address
该功能就像这样(你也可以使用RGB功能):
Sub Muppets()
Dim Kermit As Range
Set Kermit = Cells.Find("Kermit")
Dim ooo As Range
Set ooo = Range(Kermit.Address, Kermit.Offset(1, 0).End(xlDown).Address)
ooo.Interior.Color = vbBlue ' RGB(0, 0, 255)
End Sub