这是我第一次提出问题,所以请多多包涵。
我制作了一个宏来根据使用 FOR-NEXT 循环的条件隐藏命名范围中的列。结果始终显示 2 列。
使用得到的 2 列,我进行计算。
我面临使用生成的显示列的 vba 获取列号并在偏移公式中使用它们进行计算的问题。
有人可以帮忙吗?谢谢
Public Sub Custom_Report_Monthly()
On Error Resume Next
If Len(Range("Rpt_Type_M").Value) < 1 Then
MsgBox "Select Report Type"
GoTo ExitSub
ElseIf Len(Range("Select_Month").Value) < 1 Then
MsgBox "Select Month"
GoTo ExitSub
End If
ActiveSheet.Range("D_columns").EntireColumn.Hidden = True
If Range("Rpt_Type_M").Value = "Quantity" Then
For Each c In Range("Titles")
If c.Value = "Quantity" Then
c.Columns.EntireColumn.Hidden = False
End If
Next
ElseIf Range("Rpt_Type_M").Value = "Sales" Then
For Each c In Range("Titles")
If c.Value = "Sales" Then
c.Columns.EntireColumn.Hidden = False
End If
Next
ElseIf Range("Rpt_Type_M").Value = "Cost" Then
For Each c In Range("Titles")
If c.Value = "Cost" Then
c.Columns.EntireColumn.Hidden = False
End If
Next
ElseIf Range("Rpt_Type_M").Value = "Sales+Cost" Then
For Each c In Range("Titles")
If c.Value = "Sales" Then
c.Columns.EntireColumn.Hidden = False
End If
Next
For Each c In Range("Titles")
If c.Value = "Cost" Then
c.Columns.EntireColumn.Hidden = False
End If
Next
End If
For Each c In Range("P_Months")
If Month(c.Value) <> Range("Select_Month_Num").Value Then
c.Columns.EntireColumn.Hidden = True
End If
Next
For Each col In Range("D_columns") ' **this is the block where i am having problem**
If col.EntireColumn.Hidden = False Then
MsgBox (Range("col").Column)
End If
Next
Call Hide_Count_Columns
ExitSub:
End Sub