Application.ChangeColumnDataType 方法 (Project)

更改表中的本地自定义域列的数据类型。

语法

expression. ChangeColumnDataType( _Type_, _Column_ )

表达 返回 Application 对象的表达式。

参数

名称 必需/可选 数据类型 说明
Type 必需 PjFieldTypes 指定自定义字段的数据的类型。 值可以是 PjFieldTypes 常量之一。 默认值是 0 (pjCostField)。
可选 Variant 指定绝对列位置。 如果最左侧位置的列是本地自定义域,则值 0 将更改该列的数据类型。 如果第一列被锁定,则最左侧位置就是锁定列后面的第一列。 默认值是所选的列。

返回值

Boolean

说明

ChangeColumnDataType 需要自定义字段列选择。 若要手动更改自定义字段列的数据类型,将自定义字段列添加到视图中的表,用鼠标右键单击列标题,然后单击 数据类型

示例

若要使用下面的示例创建具有多个任务,项目,然后打开甘特图视图。 CreateTestTable宏创建任务表带有四个列。 在第一列的 ID 字段处于锁定状态。 第二列包含 任务名称的标题、 第三列包含 文本 1 任务自定义字段和第四列中包含 数字 1 的自定义字段。 该宏向当前视图中,分配表,然后到任务自定义字段中添加文本和数字值。

  1. 运行 CreateTestTable宏。 文本 1 自定义字段值的第一个任务是 42 X

  2. 运行 SwitchNumberAndText 宏。 该宏切换两个自定义域的标题和类型。

    注意

由于第一个任务中的 Text1 自定义域的值为 42 X,因此当 ChangeColumnDataType 尝试将该列转换为 Number1 自定义域时,Project 会显示一个错误对话框,其中包含消息“ 转换此数据将导致错误”。将删除 1 条记录的内容。是否仍要继续? 3. 若要继续转换,请在错误对话框中单击“ ”。 当到 数字 1 的自定义字段的 文本 1 自定义字段更改, 42 X的值更改为 0

  1. 若要重新更改为"甘特图"视图中的标准表,请右键单击 "全选" 单元格(表中左上角的未命名单元格),然后在下拉列表中选择其他表。
Sub CreateTestTable() 
    Dim t As Task 
    Dim n As Integer 
 
    TableEditEx Name:="Task Test Table", TaskTable:=True, Create:=True, FieldName:="ID", _ 
        Width:=5, ShowInMenu:=True, HeaderAutoRowHeightAdjustment:=True, _ 
    ShowAddNewColumn:=False 
 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Name", Title:="Task Name" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Text1" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Number1" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, LockFirstColumn:=True 
 
    TableApply Name:="Task Test Table" 
 
    n = 42 

    For Each t In ActiveProject.Tasks 
        If n = 42 Then 
            t.Text1 = CStr(n) & " X" 
        Else 
            t.Text1 = CStr(n) 
        End If 
 
        t.Number1 = n 
        n = n + 2 
    Next t 
End Sub 
 
Sub SwitchNumberAndText() 
    SelectTaskColumn Column:="Number1" 
    ChangeColumnDataType Type:=pjTextField 
 
    SelectTaskColumn Column:="Text1" 
    ChangeColumnDataType Type:=pjNumberField 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。