循环遍历 MS Project 的每个字段

2024-02-27

我试图循环遍历我的 MS Project 文件中的每个字段并收集有关该字段的信息(自定义名称是特定的)。做到这一点最简单的方法是什么?

Thanks


要获取字段的自定义名称,您需要字段常量并循环遍历所有字段,您需要存储所有字段常量的列表 https://msdn.microsoft.com/en-us/library/office/ff867782.aspx.

这是一个帮助您入门的简单示例。我对任务 Text1-30 字段的字段常量数组进行了硬编码。

Sub GetCustomFieldNames()

    Dim TextFields As Variant
    TextFields = Array(188743731, 188743734, 188743737, 188743740, 188743743 _
        , 188743746, 188743747, 188743748, 188743749, 188743750, 188743997, 188743998 _
        , 188743999, 188744000, 188744001, 188744002, 188744003, 188744004, 188744005 _
        , 188744006, 188744007, 188744008, 188744009, 188744010, 188744011, 188744012 _
        , 188744013, 188744014, 188744015, 188744016)

    Dim FldID As Variant

    For Each FldID In TextFields
        If Len(CustomFieldGetName(FldID)) > 0 Then
            Debug.Print FieldConstantToFieldName(FldID), CustomFieldGetName(FldID)
        End If
    Next FldID

End Sub

以下是一些改进方法:

  • 将数值替换为枚举常量(例如 pjTaskText1)
  • 将字段列表存储在外部文件中(例如包含字段名称、字段常量等的 csv 文件)
  • 如果您的宏存储在仅宏项目文件中,您可以将字段存储在资源表中,并通过循环访问资源来循环访问它们(请参见屏幕截图)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环遍历 MS Project 的每个字段 的相关文章

  • 在vba中打乱数组[重复]

    这个问题在这里已经有答案了 我需要对数组中的值进行无重复的洗牌 我需要在代码中添加什么以避免重复 Function Resample data vector n UBound data vector ReDim shuffled vecto
  • Excel 区分大小写的 COUNTIF 带通配符:本机函数?

    我正在尝试找到一个本机 Excel 函数 或其组合 该函数将以 COUNTIF 的方式精确运行 即处理通配符 但区分大小写 我已经成功使用了 SUMPRODUCT EXACT 函数 它们确实执行区分大小写的计数 但问题是我无法让它们识别通配
  • 变量的变化触发事件

    是否可以通过变量的更改来触发事件 例如 这将触发事件 Dim t As Integer Dim Fire As Boolean Private Sub Test t 0 Fire True IIf Fire t 1 t 2 End sub
  • 如何使用 Excel VBA 根据货币标准格式化列中的数字?

    我想格式化一列的所有单元格 数据是一个数字 我想从左边添加一个小数 之后只保留两位数 然后根据货币标准对其进行格式化 例如 Data Output 10000 100 00 112233 1 122 33 123456789 1 234 5
  • VBA 中 Thisworkbook.name 和 Activeworkbook.name 之间的区别

    Thisworkbook 和 ActiveWorkbook 有什么区别吗 示例代码 Sub workbook name MsgBox Thisworkbook name End Sub Sub active name MsgBox Acti
  • 将 Dir 与旧文件后缀一起使用

    最近问的一个question https stackoverflow com questions 68282702包括代码 strFilename Dir fPath xls 它 成功 用于查找以xls and xlsx 我的问题是 为什么
  • Windows 更新后 Excel 2010 ActiveX 控件不再工作 [重复]

    这个问题在这里已经有答案了 因此 在工作中 我在安装了最新的 Windows 7 更新 包括 Microsoft Office 2010 更新 后遇到了这个问题 更新的日期是今天 2014 年 12 月 12 日 更新后 我在 Excel
  • Excel VBA 更改命令按钮的颜色

    我在更改颜色时遇到问题CommandButton 在电子表格中 我添加设计按钮作为表单或 ActiveX 然后在 VBA 中我尝试 Activesheet shapes CommandButton1 visible false 这个效果很好
  • VBA中如何四舍五入到小数点后两位?

    在单元格 B2 中 在进行计算之前 我的变量值为 297 123 在 VBA 中 我想将其四舍五入为 297 12 请参阅下面的代码了解我的尝试 两者都将燃油评估为 297 我做错了什么 Dim fuel As Integer Dim li
  • 使用@@Identity

    我想知道如何从另一个数据库的表中获取最近生成的自动编号值 目前我正在这样做 Do Until rsA EOF Inserts new row here works Set rs New ADODB Recordset rs Open SEL
  • =MATCH() 等价于多维范围

    我有一个 Excel 工作表 其中单元格 A1 C20 INT RAND 10 这是我的数据范围 单元格 E1 1 E2 2 E3 3 等 这些是我试图找到的值 我设置单元格 F1 MATCH E1 A C 0 F2 MATCH E1 A
  • 使用 Excel-VBA(MSXML2.XMLHTTP 对象)更新 SharePoint 列表

    基本信息 我需要从 Excel 更新 添加 编辑 SharePoint 列表 我能够做到这一点ListObject 但这不是我们要走向的方向 在阅读了所有谷歌可能性后 我想出了 也许我错了 使用的想法MSXML2 XMLHTTP对象来更新
  • 在 MS Outlook 中,报告所有未收到回复的已发送邮件

    我每天都会发送大量电子邮件 但常常无法跟踪哪些邮件得到了实际回复 有没有办法使用 VBA 脚本查看上周发送的所有消息 并检查他们是否收到回复 具体来说 是一份已发送电子邮件的报告 这些电子邮件尚未从至少一个发送到的地址收到回复 我了解一点
  • 使用 Oauth2 的 EWS java api

    我想为我的应用程序使用 Oauth2 身份验证 我想使用 EWS Java api 从 O365 获取数据 是否可以 文档http blogs msdn com b exchangedev archive 2014 09 24 105108
  • 无法在我的抓取工具中设置超时选项以防止无限循环

    我已经使用 IE 在 vba 中编写了一个脚本 在其搜索框中的网页中启动搜索 通过点击搜索按钮根据搜索填充结果 网页加载它是searchbox几秒钟后它就会打开 但是 我的下面的脚本可以处理这个障碍并以正确的方式执行搜索 现在 我有一个稍微
  • 在合并的单元格中选择、插入照片并将其居中

    我是一名研发面包师 正在为我的团队制作食谱模板 模板中有照片 但我需要轻松地允许他们单击一个按钮 打开照片的文件选择器 然后将该照片放在合并的单元格中 我其实不太擅长做这个 Sub InsertPhotoMacro Dim photoNam
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 使用 ADODB 连接从关闭的工作簿中检索数据。某些数据被跳过?

    我目前正在编写一些代码 可以通过 ADODB 连接访问单独的工作簿 由于速度的原因 我选择了这种方法而不是其他方法 下面是我的代码 Sub GetWorksheetData strSourceFile As String strSQL As
  • 无法使用 VBA 代码从 Excel 连接到 Teradata - 无法通过网络访问 Teradata 服务器

    我一直在尝试使用 vba 代码从 Excel 连接到 Teradata 但收到以下错误 无法通过网络访问 Teradata Server 我已经能够从 Teradata SQL 助手成功连接 并且还成功 ping 通 Teradata 服务
  • 在工作表中合并行和求和值

    我有一个 Excel 工作表 其中包含以下数据 管道 来分隔列 A B C X 50 60 D E F X 40 30 A B C X 10 20 A B C Y 20 20 A B C X 20 70 D E F X 10 50 A B

随机推荐