【问题标题】:MS-PROJECT how do I apply Application.AddNewColumn method correctly?MS-PROJECT 如何正确应用 Application.AddNewColumn 方法?
【发布时间】:2020-07-01 07:05:02
【问题描述】:

我想在我的代码开始时使列(摘要)可见,以便从该数据中检索并在代码末尾再次关闭它。 在我的代码中。 到目前为止,在我的代码中,必须始终显示列摘要才能使其工作,但我不想这样做。 这就是为什么我想在开头显示列并在结尾隐藏它

Sub BalkenFormatieren()

    Dim Inhalt, Trennzeichen As String
    Dim i, Werte As Integer
    Dim ArrDaten(0 To 248, 0 To 248) As Double
    Dim OriginalTaskID As Long
    Dim Tsk As Task
    Dim LastTaskRow As Long


    LastTaskRow = ActiveProject.Tasks.Count
    Trennzeichen = "_"



    'Von - Bis Spalten
    For i = 0 To LastTaskRow - 1

        'definiere Zeile mit schleife
        SelectTaskField Row:=i + 1, Column:="Summary", RowRelative:=False
        Inhalt = ActiveCell

        'Wenn Zelle = Ja dann Fromatieren
        If Inhalt = "Yes" Then
            GanttBarFormatEx MiddleShape:=5, righttext:="text29"
        End If

    Next i
End Sub

【问题讨论】:

  • 您要在汇总列中添加哪些数据?
  • 嗨,Dorian 对不起,我没有解释清楚,我的英语不太好。我只会从摘要中查询数据,这就是我想让它可见的原因。我的目标是用我的代码格式化所有收集过程。不幸的是,这也适用于列摘要也可见的情况。
  • 所以您只想添加一个名为“Summary”的列?您想何时隐藏列摘要?这还不清楚。最诚挚的问候
  • 我不会在代码末尾隐藏列摘要。
  • 我找到了addnewcollumn和columninsert这两个命令,但是我不明白如何使用它们。

标签: vba ms-project


【解决方案1】:

要向甘特图表添加或删除列,请使用TableEditEx 方法,如此 SO 帖子中所示:How to add a new column in Microsoft Project...How to Add Column...to MS Project


但是有更好的方法来获取任务的属性。

您无需添加列即可获取活动任务的属性。使用ActiveCellTask 属性。

For i = 0 To LastTaskRow - 1

    SelectRow Row:=i + 1, RowRelative:=False

    If ActiveCell.Task.Summary Then
        GanttBarFormatEx MiddleShape:=5, righttext:="text29"
    End If

Next i

请注意,这使用了SelectRow 方法,该方法有一个名为RowRelative 的参数。像这样循环所有任务时,最好将该参数设置为False,并将Row 参数设置为您想要的绝对位置;否则RowRelative 默认为True 并且选择位置向前移动从当前选择,而不是第一个任务。

【讨论】:

  • 嗨瑞秋谢谢你的帮助。 :) 我试过了,当我使用代码时,错误代码:“编译错误:参数不是可选的”来了。所以我必须使用 "SelectTaskField Row:=i + 1, Column:="Summary", RowRelative:=False" 但如果没有可见列,它就无法工作。我怎样才能做到?
  • 糟糕!对于那个很抱歉。我修复了代码。请务必使用SelectRow 而不是SelectTaskField 并使用RowRelative:=False 参数,否则它默认为true 并从当前选择而不是从开头移动选择点。
  • 谢谢 Rachel 完美的解决方案。 :) 你能否给我一个提示,我可以在哪里找到关于 vba-Project 主题的培训材料?对我来说,进入主题非常困难
  • 微软的文档不是很深,但它确实涵盖了整个 api:从了解Task objectTasks collection objectApplication object 开始。使用 Google 和 Stack Overflow 查找更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 2022-07-17
  • 1970-01-01
  • 2018-12-02
  • 2016-06-28
  • 1970-01-01
相关资源
最近更新 更多