Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改数据透视字段Excel VBA上的字体样式_Excel_Vba_Fonts_Pivot - Fatal编程技术网

更改数据透视字段Excel VBA上的字体样式

更改数据透视字段Excel VBA上的字体样式,excel,vba,fonts,pivot,Excel,Vba,Fonts,Pivot,我有一个构建数据透视表的代码,我想将其中一个字段设置为斜体,但我不知道如何设置 我的代码从一开始就是这样的: With ActiveSheet.PivotTables("Laddsida").PivotFields("Work hrs") .Orientation = xlDataField .Position = 6 .Function = xlSum .NumberFormat = "[h]:mm:ss" .Name = "Uppskattad arbetad tid" End With

我有一个构建数据透视表的代码,我想将其中一个字段设置为斜体,但我不知道如何设置

我的代码从一开始就是这样的:

With ActiveSheet.PivotTables("Laddsida").PivotFields("Work hrs")
.Orientation = xlDataField
.Position = 6
.Function = xlSum
.NumberFormat = "[h]:mm:ss"
.Name = "Uppskattad arbetad tid"
End With
我试过这样做:

With ActiveSheet.PivotTables("Laddsida").PivotFields("Work hrs")
.Orientation = xlDataField
.Position = 6
.Function = xlSum
.NumberFormat = "[h]:mm:ss"
.font.Italic = True
.Name = "Uppskattad arbetad tid"
End With
但会出现以下错误:

运行时错误“438”:

对象不支持此属性或方法

在您的帮助下,我成功地走到了这一步,但是
行范围
只影响第一个行,如图所示


根据我的评论:
。Font
不是PivotFields对象模型已知的属性的一部分。但是,您可以使用,它将返回一个
范围
对象,该对象反过来支持
.Font
;例如:

Sub Test()

Dim ws as Worksheet: Set ws = ThisWorkbook.Worksheets("????") 'Name of your sheet
ws.PivotTables("Laddsida").PivotFields("Work hrs").DataRange.Font.Italic = True

End Sub

根据您的评论,我认为您的行中有标题,也称为a。我们可以使用此
范围
对象查找您的特定目标标题:

Sub Test()

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("????") 'Name of your sheet
Dim cl As Range

Set cl = ws.PivotTables("Laddsida").RowRange.Find("Work hrs")
If Not cl Is Nothing Then
    cl.Font.Italic = True
End If

End Sub

根据您最近的评论,似乎您有多个具有相同值的标题,因此您可能希望使用
。FindNext

Sub Test()

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("????") 'Name of your sheet
Dim cl As Range, rw As Long

With ws.PivotTables("Laddsida").RowRange
    Set cl = .Find("Work hrs")
    If Not cl Is Nothing Then
        rw = cl.Row
        Do
            cl.Font.Italic = True
            Set cl = .FindNext(cl)
        If cl Is Nothing Then GoTo DoneFinding
        Loop While cl.Row <> rw
    End If
DoneFinding:
End With

End Sub
子测试()
将ws设置为工作表:设置ws=ThisWorkbook.Worksheets(“??”)工作表的名称
尺寸cl为范围,rw为长度
使用ws.PivotTables(“Laddsida”).RowRange
设置cl=.Find(“工时”)
如果不是,那么cl什么都不是
rw=cl.行
做
cl.Font.Italic=True
设置cl=.FindNext(cl)
如果cl为Nothing,则转到DoneFinding
循环,而cl.行rw
如果结束
完成查找:
以
端接头

根据我的评论:
。Font
不是PivotFields对象模型已知的属性的一部分。但是,您可以使用,它将返回一个
范围
对象,该对象反过来支持
.Font
;例如:

Sub Test()

Dim ws as Worksheet: Set ws = ThisWorkbook.Worksheets("????") 'Name of your sheet
ws.PivotTables("Laddsida").PivotFields("Work hrs").DataRange.Font.Italic = True

End Sub

根据您的评论,我认为您的行中有标题,也称为a。我们可以使用此
范围
对象查找您的特定目标标题:

Sub Test()

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("????") 'Name of your sheet
Dim cl As Range

Set cl = ws.PivotTables("Laddsida").RowRange.Find("Work hrs")
If Not cl Is Nothing Then
    cl.Font.Italic = True
End If

End Sub

根据您最近的评论,似乎您有多个具有相同值的标题,因此您可能希望使用
。FindNext

Sub Test()

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("????") 'Name of your sheet
Dim cl As Range, rw As Long

With ws.PivotTables("Laddsida").RowRange
    Set cl = .Find("Work hrs")
    If Not cl Is Nothing Then
        rw = cl.Row
        Do
            cl.Font.Italic = True
            Set cl = .FindNext(cl)
        If cl Is Nothing Then GoTo DoneFinding
        Loop While cl.Row <> rw
    End If
DoneFinding:
End With

End Sub
子测试()
将ws设置为工作表:设置ws=ThisWorkbook.Worksheets(“??”)工作表的名称
尺寸cl为范围,rw为长度
使用ws.PivotTables(“Laddsida”).RowRange
设置cl=.Find(“工时”)
如果不是,那么cl什么都不是
rw=cl.行
做
cl.Font.Italic=True
设置cl=.FindNext(cl)
如果cl为Nothing,则转到DoneFinding
循环,而cl.行rw
如果结束
完成查找:
以
端接头

.Font
数据透视字段
对象模型已知属性的一部分。我想,你知道一种方法可以让它以任何方式工作吗?某种解决方法?
.Font
数据透视字段
对象模型已知属性的一部分。我想,你知道一种方法可以让它以任何方式工作吗?某种解决方法?这是一个很好的解决方案,它解决了我的问题,但不是我想的方式!!它只影响数字,而不影响文本。我希望“工时”是斜体的,但这可能需要很多…你是说页眉吗@塞巴斯蒂安·博斯特伦佩尔哈普斯。。。我对这一点很陌生,所以没有正确的术语,但在数据透视表的最左边,我有我要显示的值的“名称”列表,它是列表中我想在
Italic
中显示的名称之一,我想我知道您有
RowRange
标题。我将包括一个选项,以找到您的具体标题@SebastianBoströmIt有效,但仅在第一个方面,我在帖子中添加了一个图像,这是一个伟大的解决方案,它解决了我的问题,但不是我想的方式!!它只影响数字,而不影响文本。我希望“工时”是斜体的,但这可能需要很多…你是说页眉吗@塞巴斯蒂安·博斯特伦佩尔哈普斯。。。我对这一点很陌生,所以没有正确的术语,但在数据透视表的最左边,我有我要显示的值的“名称”列表,它是列表中我想在
Italic
中显示的名称之一,我想我知道您有
RowRange
标题。我将包括一个选项,以找到您的具体标题@SebastianBoströmIt有效,但仅在第一个方面,我在帖子中添加了一个图像