仅在 Excel 中突出显示具有值的单元格的顶行 |微软访问

Posted

技术标签:

【中文标题】仅在 Excel 中突出显示具有值的单元格的顶行 |微软访问【英文标题】:Highlight Top Row in Excel for Only Cells with Values | MS Access 【发布时间】:2020-11-27 08:53:19 【问题描述】:

基本上,我在导出 Excel 后在 MS Access 中使用了以下代码。 这适用于应用过滤器功能并使单元格值加粗,但我怎样才能突出显示这些相同值的单元格?

   'Specifying Tables

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Table1",".xlsx", True


DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Table2",".xlsx", True

Call ModifyExportedExcelFileFormats(".xlsx", "Table1")

Call ModifyExportedExcelFileFormats(".xlsx", "Table2")

__

Public Sub ModifyExportedExcelFileFormats(sFile As String, sSheet As String)

Dim xlApp As Object
Dim xlSheet As Object

Set xlApp = CreateObject("Excel.Application")
Set xlSheet = xlApp.Workbooks.Open(sFile).Sheets(1)



With xlApp
        .Application.Sheets(sSheet).Select
        .Application.Rows("1:1").Select
        .Application.Selection.Font.Bold = True
        
        .Application.range("A1").Select
        .Application.Selection.AutoFilter
        
        
        .Application.Cells.Select
        .Application.Selection.Columns.AutoFit
        .Application.range("A1").Select
        
        .Application.Activeworkbook.Save
        .Application.Activeworkbook.Close
        .Quit
   End With

结束子

如何正确使用它来仅突出显示顶行中具有值的单元格?

        .Application.Selection.Interior.Color = vbYellow

【问题讨论】:

Range([whatever]).SpecialCells(xlCellTypeConstants).Interior.Color = vbYellow? 可以设置条件格式规则。 我已经用更多上下文更新了我的帖子,可以通过 MS Access VBA 将条件规则应用于电子表格吗?我现在应用的所有格式都是在我导出后静默完成的 你的意思是只突出第一行? 【参考方案1】:

这确实有效:Range([whatever]).SpecialCells(xlCellTypeConstants).Interior.Color = vbYellow

但如果用户要编辑数据,可能需要设置条件格式规则。不必实际选择单元格来修改属性。使用ActiveAnything 语法可能会导致自动化代码出现问题。最好使用显式引用。

Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open(sFile)
With xlWb.Worksheets(sSheet).Range("A1:G1")
    .Font.Bold = True
    .Columns.AutoFit
    .FormatConditions.add Type:=xlExpression, Formula1:="=LEN(TRIM(A1))>0"
    .FormatConditions(1).Interior.Color = vbYellow
End With
xlWb.Worksheets(sSheet).Range("A1").AutoFilter
xlWb.Save
xlWb.Close
xlApp.Quit

【讨论】:

脚本停在.FormatConditions.add Type:=xlExpression, Formula1:="=LEN(TRIM(A1))>0" 说无效参数 代码对我有用。你为什么不做我做的 - 使用 Excel 宏记录器生成代码,然后将其调整为 Access 程序。

以上是关于仅在 Excel 中突出显示具有值的单元格的顶行 |微软访问的主要内容,如果未能解决你的问题,请参考以下文章

Excel用底纹突出单元格的数据给Excel单元格添加底纹效果

带有多个值的单元格的 Microsoft Excel 电子表格筛选器

有条件地显示具有匹配值的单元格的行中的值

EXCEL VBA - 根据单元格范围和字符串创建动态下拉列表[关闭]

是否存在按 Ctrl + G 并选择空白不会突出显示空单元格的情况?

Excel,单元格值更改时不同的行突出显示颜色