0

我正在尝试在确定条件发生时更改行的值,并且我正在考虑在插入后执行此操作,但在插入之前可能会更容易(?)事情是我已经尝试了两个,并且我做错了,因为它不起作用

代码:

With ThisWorkbook.Worksheets("Site Configuration List")
       ' Tried this .Range("A").EntireRow.Interior.Color = 49407
        .Range("A" & Rows.Count).End(xlUp).Offset(1).Value = Code
        .Range("B" & Rows.Count).End(xlUp).Offset(1).Value = Name
        .Range("C" & Rows.Count).End(xlUp).Offset(1).Value = "" & Contract & ""
        .Range("D" & Rows.Count).End(xlUp).Offset(1).Value = SiteCode
        .Range("E" & Rows.Count).End(xlUp).Offset(1).Value = SiteName
        .Range("G" & Rows.Count).End(xlUp).Offset(1).Value = Approver
        .Range("K" & Rows.Count).End(xlUp).Offset(1).Value = ItemCode
        .Range("M" & Rows.Count).End(xlUp).Offset(1).Value = RequiredQty
        .Range("N" & Rows.Count).End(xlUp).Offset(1).Value = ControlFlag
    If Color = 0 Then
       ', this .Offset(-1).Interior.Color = 49407
        ',this .Interior.Color = 49407
     'and this .EntireRow.Interior.Color = 255
    Else


    End If
    End With

显然不是同时,但这些都不起作用。我做错了什么,我该如何解决?我是 VBA 新手,一些最简单的事情通常需要我更多时间才能弄清楚。我使用什么来尝试实现我想要的我已经从其他类似的问题中获取了它。对实现上述代码的 sub 的调用是在一个循环内,但是,对于我尝试过的每一件事,当它到达该行时,程序就会停止。没有错误或任何东西。

4

2 回答 2

2

范围未正确声明。代替

.Range("A").EntireRow.Interior.Color = 49407

它需要是

.Range("1:1").EntireRow.Interior.Color = 49407

如果您想突出显示整行或

.Range("A:A").EntireColumn.Interior.Color = 49407

突出显示整个列。

编辑

要为最后一行数据着色,您需要使用该Rows方法以及从Rows.Count. 代码如下所示

Rows(Range("A" & Rows.Count).End(xlUp).Row).EntireRow.Interior.Color = 49407

或者

Rows(Range("A" & Rows.Count).End(xlUp).offset(1).Row) _
                                           .EntireRow.Interior.Color = 49407
于 2013-11-01T19:24:53.587 回答
2

如下更改代码应该可以解决问题。

With ThisWorkbook.Worksheets("Site Configuration List")
    .Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow.Interior.Color = 49407
    .Range("A" & Rows.Count).End(xlUp).Offset(1).Value = Code
    .Range("B" & Rows.Count).End(xlUp).Offset(1).Value = Name
于 2013-11-02T02:44:07.250 回答