You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Project:如何获取TimescaleEdit方法设置的值?

获取MS Project时间刻度缩放级别解决方案

MS Project的TimescaleEdit方法仅用于设置时间刻度参数(如通过Enlarge参数调整缩放级别),它是一个无返回值的Sub过程,无法直接通过它读取已设置的缩放状态。要获取当前时间刻度的数值化状态,可通过以下两种方式实现:

1. 获取当前绝对缩放级别(整数结果)

使用Application.TimescaleLevel属性直接返回当前时间刻度的级别数值,该值对应不同的时间单位(数值越小,时间跨度越大):

' 在VBA立即窗口或代码中执行
Dim currentScale As Integer
currentScale = Application.TimescaleLevel
Debug.Print currentScale

示例返回值对应关系(参考MS Project对象模型):

  • 1 = 年
  • 2 = 半年
  • 3 = 季度
  • 4 = 月
  • 5 = 周
  • 6 = 天
  • 7 = 小时
  • 8 = 分钟

2. 获取精确刻度参数(单位+数量)

如果需要更细致的刻度设置信息(比如每个上级单位包含的当前刻度数),可读取ActiveWindow.View.Timescale的相关属性:

' 获取主要刻度单位与数量
Dim majorUnit As PjTimescaleUnit
Dim majorCount As Integer

majorUnit = ActiveWindow.View.Timescale.MajorUnit
majorCount = ActiveWindow.View.Timescale.MajorCount

' 输出数值化结果(单位枚举值转整数)
Debug.Print "主要刻度单位数值:" & CInt(majorUnit)
Debug.Print "主要刻度数量:" & majorCount

' 同理可获取次要刻度参数
Dim minorUnit As PjTimescaleUnit
Dim minorCount As Integer
minorUnit = ActiveWindow.View.Timescale.MinorUnit
minorCount = ActiveWindow.View.Timescale.MinorCount
Debug.Print "次要刻度单位数值:" & CInt(minorUnit)
Debug.Print "次要刻度数量:" & minorCount

补充说明

TimescaleEdit Enlarge:=TheValue中的Enlarge参数是相对调整量:

  • Enlarge:=1 表示放大1级
  • Enlarge:=-1 表示缩小1级
    调整后的最终级别可通过Application.TimescaleLevel直接读取。

内容的提问来源于stack exchange,提问作者FloMSD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:01:37