首页 文章

单元格的内部颜色直到最后一个单元格中的数据

提问于
浏览
2

这是我的问题:

  • 我有一个excel电子表格,其中sheet2是整体数据,sheet3是sheet8,数据基于从sheet2复制的年份 .

  • 在每个工作表(Sheet3-8)中添加每行(不包括第1行)的值,并添加到D列中每行的总和 .

  • 要在第D列中从第2行到最后一行使用以下代码(在sheet3中的示例)中使用内部颜色和粗体字 .

  • 将使用sheet2中的命令按钮更新电子表格 .

  • 当我在VB开发人员中单独运行代码时,有时会运行它会导致运行时错误1004 .

  • 当我尝试使用按钮更新电子表格时,它总是会导致错误 .

{Sheet3.Range("D2", Cells(Rows.Count, "D").End(xlUp).Offset(-2, 0)).Interior.Color = RGB(255, 192, 0)}
{Sheet3.Range("D2", Cells(Rows.Count, "D").End(xlUp).Offset(-2, 0)).Font.Bold=True}

完整代码如下所示:

{Sub YearlyForcast2011_2012()

Sheet3.Columns("D").HorizontalAlignment = xlRight
Dim j As Integer
Dim lastrow2 As Long
Dim sumrange As Long


lastrow2 = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To lastrow2

Sheet3.Cells(j, 4).Value = Sheet3.Cells(j, 5).Value + Sheet3.Cells(j, 6).Value + Sheet3.Cells(j, 7).Value + Sheet3.Cells(j, 8) + Sheet3.Cells(j, 9).Value + Sheet3.Cells(j, 10).Value + Sheet3.Cells(j, 11).Value +      Sheet3.Cells(j, 12).Value + Sheet3.Cells(j, 13).Value + Sheet3.Cells(j, 14).Value + Sheet3.Cells(j, 15).Value + Sheet3.Cells(j, 16).Value

Next j

   sumrange = Sheet3.Cells(Rows.Count, "D").End(xlUp).Row
   Sheet3.Range("D" & sumrange + 2).Formula = "=SUM(D2:D" & sumrange & ")"
   Sheet3.Range("D" & sumrange + 2).Font.Bold = True
   Sheet3.Range("D" & sumrange + 2).Font.Size = 12
   Sheet3.Range("D" & sumrange + 2).Font.Color = RGB(255, 0, 0)
   Sheet3.Range("D2", Cells(Rows.Count, "D").End(xlUp).Offset(-2, 0)).Interior.Color = RGB(255, 192, 0)
   Sheet3.Range("D2", Cells(Rows.Count, "D").End(xlUp).Offset(-2, 0)).Font.Bold=True

Sheet3.Range("c" & sumrange + 2).Value = "TOTAL 2011-2011 YEARLY FORCAST"
Sheet3.Range("c" & sumrange + 2).Font.Bold = True
Sheet3.Range("c" & sumrange + 2).Font.Size = 12
Sheet3.Range("c" & sumrange + 2).Font.Color = RGB(255, 0, 0)
Sheet3.Range("c" & sumrange + 2).HorizontalAlignment = xlRight


Application.ScreenUpdating = False
Application.CutCopyMode = False


 End Sub
}

有人可以帮助我避免错误并更新电子表格,保持表格的每个D列中的内部颜色和粗体字体?

1 回答

  • 0

    试试这个:
    排队之前

    Sheet3.Range("D2", Cells(Rows.Count, "D").End(xlUp).Offset(-2, 0)).Interior.Color = RGB(255, 192, 0)
    Sheet3.Range("D2", Cells(Rows.Count, "D").End(xlUp).Offset(-2, 0)).Font.Bold=True
    

    lastrow2 = Sheet3.Cells(Rows.Count, "D").End(xlUp).Row

    并将您的行更改为:

    Sheet3.Range("D2", Cells(lastrow2, "D")).Interior.Color = RGB(255, 192, 0)
    Sheet3.Range("D2", Cells(lastrow2, "D")).Font.Bold = True
    

    你也可以改变这个:

    For j = 2 To lastrow2
    
    Sheet3.Cells(j, 4).Value = Sheet3.Cells(j, 5).Value + Sheet3.Cells(j, 6).Value + Sheet3.Cells(j, 7).Value + Sheet3.Cells(j, 8) + Sheet3.Cells(j, 9).Value + Sheet3.Cells(j, 10).Value + Sheet3.Cells(j, 11).Value +      Sheet3.Cells(j, 12).Value + Sheet3.Cells(j, 13).Value + Sheet3.Cells(j, 14).Value + Sheet3.Cells(j, 15).Value + Sheet3.Cells(j, 16).Value
    
    Next j
    

    对此:

    Sheet3.Range("D2:D" & lastrow2).Formula = "=SUM(E2:T2)"
    

    要运行工作表3-8,整个代码将如下所示(请记住 j 是工作表的索引!如有必要,请调整):

    Sub YearlyForcast2011_2012()
    
    Dim j As Integer
    Dim lastrow2 As Long
    Dim sumrange As Long
    
    For j = 3 To 8
    
        Sheets(j).Columns("D").HorizontalAlignment = xlRight
    
        lastrow2 = Sheets(j).Cells(Rows.Count, 1).End(xlUp).Row
    
         Sheets(j).Range("D2:D" & lastrow2).Formula = "=SUM(E2:T2)"
    
        sumrange = Sheets(j).Cells(Rows.Count, "D").End(xlUp).Row
    
         Sheets(j).Range("D" & sumrange + 2).Formula = "=SUM(D2:D" & sumrange & ")"
         Sheets(j).Range("D" & sumrange + 2).Font.Bold = True
         Sheets(j).Range("D" & sumrange + 2).Font.Size = 12
         Sheets(j).Range("D" & sumrange + 2).Font.Color = RGB(255, 0, 0)
    
        lastrow2 = Sheets(j).Cells(Rows.Count, "D").End(xlUp).Row
    
         Sheets(j).Range("D2", Cells(lastrow2, "D")).Interior.Color = RGB(255, 192, 0)
         Sheets(j).Range("D2", Cells(lastrow2, "D")).Font.Bold = True
    
         Sheets(j).Range("c" & sumrange + 2).Value = "TOTAL 2011-2011 YEARLY FORCAST"
         Sheets(j).Range("c" & sumrange + 2).Font.Bold = True
         Sheets(j).Range("c" & sumrange + 2).Font.Size = 12
         Sheets(j).Range("c" & sumrange + 2).Font.Color = RGB(255, 0, 0)
         Sheets(j).Range("c" & sumrange + 2).HorizontalAlignment = xlRight
    
    Next j
    
    Application.ScreenUpdating = False
    Application.CutCopyMode = False
    
    End Sub
    

相关问题