Vba 在表内运行宏
我希望运行一个宏,将表中的一行的背景色设置为绿色,但如果有两个表相邻,则第二个表也会将该行设置为绿色: 有没有办法只在第一个表格中获得背景色,而不命名表格。(例如,不命名“设置表格1行颜色为绿色”)。以下是我正在使用的代码:Vba 在表内运行宏,vba,excel,Vba,Excel,我希望运行一个宏,将表中的一行的背景色设置为绿色,但如果有两个表相邻,则第二个表也会将该行设置为绿色: 有没有办法只在第一个表格中获得背景色,而不命名表格。(例如,不命名“设置表格1行颜色为绿色”)。以下是我正在使用的代码: Sub TEST() Set LeftCell = Cells(ActiveCell.Row, 1) Set RightCell = Cells(ActiveCell.Row, Columns.Count) If IsEmpty(LeftCell) Then Set
Sub TEST()
Set LeftCell = Cells(ActiveCell.Row, 1)
Set RightCell = Cells(ActiveCell.Row, Columns.Count)
If IsEmpty(LeftCell) Then Set LeftCell = LeftCell.End(xlToRight)
If IsEmpty(RightCell) Then Set RightCell = RightCell.End(xlToLeft)
If LeftCell.Column = Columns.Count And RightCell.Column = 1 Then
ActiveCell.Select
Else
Range(LeftCell, RightCell).Select
End If
Selection.Interior.Color = RGB(146, 208, 80)
End Sub
谢谢
罗克萨纳
请尝试一下
Sub FillRowColor()
Dim tbl As ListObject
Dim tblName
Dim cell As Range
Set cell = ActiveCell
On Error Resume Next
tblName = cell.ListObject.Name
On Error GoTo 0
If tblName <> "" Then
Set tbl = ActiveCell.ListObject
Set tbl = ActiveSheet.ListObjects(1)
tbl.Range.Interior.ColorIndex = xlNone
tbl.Range.Rows(ActiveCell.Row).Interior.Color = RGB(146, 208, 80)
Else
MsgBox "ActiveCell is not in the table.", vbCritical
End If
End Sub
子FillRowColor()
作为ListObject的Dim tbl
模糊tblName
暗淡单元格作为范围
设置单元格=活动单元格
出错时继续下一步
tblName=cell.ListObject.Name
错误转到0
如果tblName为“”,则
设置tbl=ActiveCell.ListObject
Set tbl=ActiveSheet.ListObjects(1)
tbl.Range.Interior.ColorIndex=xlNone
tbl.Range.Rows(ActiveCell.Row).Interior.Color=RGB(146、208、80)
其他的
MsgBox“ActiveCell不在表中”。vbCritical
如果结束
端接头
请尝试一下
Sub FillRowColor()
Dim tbl As ListObject
Dim tblName
Dim cell As Range
Set cell = ActiveCell
On Error Resume Next
tblName = cell.ListObject.Name
On Error GoTo 0
If tblName <> "" Then
Set tbl = ActiveCell.ListObject
Set tbl = ActiveSheet.ListObjects(1)
tbl.Range.Interior.ColorIndex = xlNone
tbl.Range.Rows(ActiveCell.Row).Interior.Color = RGB(146, 208, 80)
Else
MsgBox "ActiveCell is not in the table.", vbCritical
End If
End Sub
子FillRowColor()
作为ListObject的Dim tbl
模糊tblName
暗淡单元格作为范围
设置单元格=活动单元格
出错时继续下一步
tblName=cell.ListObject.Name
错误转到0
如果tblName为“”,则
设置tbl=ActiveCell.ListObject
Set tbl=ActiveSheet.ListObjects(1)
tbl.Range.Interior.ColorIndex=xlNone
tbl.Range.Rows(ActiveCell.Row).Interior.Color=RGB(146、208、80)
其他的
MsgBox“ActiveCell不在表中”。vbCritical
如果结束
端接头
所以您希望它保持绿色,直到他们输入某个内容为止?如果是这样的话,使用条件格式会更好。是的,这正是我想要的。但是在这种情况下,我如何使用条件格式呢?你能澄清一下你想要发生什么吗?我仍然不清楚你期望的行为。你能在你的问题中发布一些额外的屏幕截图,显示在没有文本的情况下它应该是什么样子,以及文本输入到某些单元格后它应该是什么样子。所以你希望它保持绿色,直到他们输入一些内容为止?如果是这样的话,使用条件格式会更好。是的,这正是我想要的。但是在这种情况下,我如何使用条件格式呢?你能澄清一下你想要发生什么吗?我仍然不清楚你期望的行为。你能在你的问题中发布一些额外的屏幕截图,显示在没有文本的情况下应该是什么样子,以及文本输入到某些单元格后应该是什么样子。sktneer,如果我运行此代码,我会得到表格中所有单元格的黑色背景,因此我删除了“=RGB(146,208,80)”后面的第二个内部颜色。不,它把所有的单元格和行都涂成绿色。@RoxanaVlad我的错,我不知道它们是如何复制的,可能是在复制和粘贴代码的过程中。我已经编辑了代码,它应该可以为您工作。我也这么做了,但现在我让表中的所有单元格都填充了颜色。根据代码逻辑,表中第1列为空的任何行,该行都将高亮显示为绿色。如果您的表为空,则所有行都将显示为绿色。您希望如何将表格行涂成绿色,即表格行涂成绿色的条件是什么?很抱歉我的答复太晚。我添加了一张关于我的结果的新照片。动态表中的每一行都有多个宏。例如,如果我的活动单元格是表中剩余的第一个单元格,我想在表中为一个特定行上色。我的宏现在运行,直到它在第二个表中找到最后一个单元格,而不是在第一个表中。sktneer,如果我运行此代码,我会得到表中所有的单元格,背景为黑色,因此我删除了“=RGB(146,208,80)”后面的第二个内部颜色。不,它把所有的单元格和行都涂成绿色。@RoxanaVlad我的错,我不知道它们是如何复制的,可能是在复制和粘贴代码的过程中。我已经编辑了代码,它应该可以为您工作。我也这么做了,但现在我让表中的所有单元格都填充了颜色。根据代码逻辑,表中第1列为空的任何行,该行都将高亮显示为绿色。如果您的表为空,则所有行都将显示为绿色。您希望如何将表格行涂成绿色,即表格行涂成绿色的条件是什么?很抱歉我的答复太晚。我添加了一张关于我的结果的新照片。动态表中的每一行都有多个宏。例如,如果我的活动单元格是表中剩余的第一个单元格,我想在表中为一个特定行上色。我的宏现在运行,直到它在第二个表中找到最后一个单元格,而不是在第一个表中。