0
我是新來的VBA編程,我遇到了一個奇怪的問題。 所以我有一個數據透視表,包含3種類型的行(「用戶」,「全名」,「權限」)。EXCEL VBA問題返回#VALUE!而不是通過數據透視表虛假
我寫了一個程序,在PivotTable
中尋找某個名字x
,一旦找到了它的名字,它會查看下面的「許可」,如果他們有「許可」則返回「真」。現在當它返回「真」的情況下工作正常,但由於某種原因,每次失敗,而不是像我想的那樣返回假,它會返回#VALUE !,有誰知道爲什麼?
Public Function Dependency(x As String) As String
Dim rngRow As Range
Dim pt As PivotTable
Dim pf2Value As String
Dim pf3Value As String
pf2Value = "False"
pf3Value = "False"
Set pt = ActiveSheet.PivotTables("PivotTable1")
For Each rngRow In pt.RowRange
If pf2Value = "True" And rngRow.PivotField.Name = "Permissions" Then
If rngRow.Value = "Has Permissions" Then
pf3Value = "True"
End If
End If
If pf2Value = "True" And pf3Value = "True" And rngRow.PivotField.Name <> "Permissions" Then Exit For
If rngRow.PivotField.Name = "Full Name" And rngRow.Value = x Then
pf2Value = "True"
End If
If rngRow.PivotField.Name = "Full Name" And rngRow.Value <> x Then
pf2Value = "False"
End If
Next rngRow
Dependency = pf3Value
End Function
如果我這樣做,它返回false:
Public Function Dependency(x As String) As String
Dim rngRow As Range
Dim pt As PivotTable
Dim pf2Value As String
Dim pf3Value As String
pf2Value = "False"
pf3Value = "False"
Set pt = ActiveSheet.PivotTables("PivotTable1")
For Each rngRow In pt.RowRange
Next rngRow
Dependency = pf3Value
End Function
問題開始時我加入這一行:
Public Function Dependency(x As String) As String
Dim rngRow As Range
Dim pt As PivotTable
Dim pf2Value As String
Dim pf3Value As String
pf2Value = "False"
pf3Value = "False"
Set pt = ActiveSheet.PivotTables("PivotTable1")
For Each rngRow In pt.RowRange
If pf2Value = "True" And rngRow.PivotField.Name = "Permissions" Then
End If
Next rngRow
Dependency = pf3Value
End Function
當你說你正在尋找的名字'x',你在'PivotTable'意味着」 s字段名稱'「Full Name」'? –
@ShaiRado,是的! x將會像「John Doe」一樣,每一行都標有Full Name的值就像「Jane Smith」,我將x與Full Name值進行比較以找到合適的人。我應該補充說,這些行都在一列 – Doj321
看到我的答案和下面的代碼 –