Application.ChangeColumnDataType 方法 (Project)
更改表中的本地自定义域列的数据类型。
语法
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 支持和反馈,获取有关如何接收支持和提供反馈的指南。