更改表中的本地自定义域列的数据类型。
语法
expression. ChangeColumnDataType( _Type_, _Column_ )
表达 返回 Application 对象的表达式。
参数
| 名称 | 必需/可选 | 数据类型 | 说明 | 
|---|---|---|---|
| Type | 必需 | PjFieldTypes | 指定自定义字段的数据的类型。 值可以是 PjFieldTypes 常量之一。 默认值是 0 (pjCostField)。 | 
| 列 | 可选 | Variant | 指定绝对列位置。 如果最左侧位置的列是本地自定义域,则值 0 将更改该列的数据类型。 如果第一列被锁定,则最左侧位置就是锁定列后面的第一列。 默认值是所选的列。 | 
返回值
Boolean
说明
ChangeColumnDataType 需要自定义字段列选择。 若要手动更改自定义字段列的数据类型,将自定义字段列添加到视图中的表,用鼠标右键单击列标题,然后单击 数据类型。
示例
若要使用下面的示例创建具有多个任务,项目,然后打开甘特图视图。 CreateTestTable宏创建任务表带有四个列。 在第一列的 ID 字段处于锁定状态。 第二列包含 任务名称的标题、 第三列包含 文本 1 任务自定义字段和第四列中包含 数字 1 的自定义字段。 该宏向当前视图中,分配表,然后到任务自定义字段中添加文本和数字值。
- 运行 CreateTestTable宏。 文本 1 自定义字段值的第一个任务是 42 X。 
- 运行 SwitchNumberAndText 宏。 该宏切换两个自定义域的标题和类型。 - 注意 
由于第一个任务中的 Text1 自定义域的值为 42 X,因此当 ChangeColumnDataType 尝试将该列转换为 Number1 自定义域时,Project 会显示一个错误对话框,其中包含消息“ 转换此数据将导致错误”。将删除 1 条记录的内容。是否仍要继续? 3. 若要继续转换,请在错误对话框中单击“ 是 ”。 当到 数字 1 的自定义字段的 文本 1 自定义字段更改, 42 X的值更改为 0。
- 若要重新更改为"甘特图"视图中的标准表,请右键单击 "全选" 单元格(表中左上角的未命名单元格),然后在下拉列表中选择其他表。
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 支持和反馈,获取有关如何接收支持和提供反馈的指南。