gpt4 book ai didi

vba - 从字符串变量分配 Excel 数字格式

转载 作者:行者123 更新时间:2023-12-02 19:11:59 30 4
gpt4 key购买 nike

我使用 PowerShell 脚本创建了一个 Excel 工作簿。该工作簿包含一个带有两个轴的图表。一个轴的数字格式应设置为本地化的自定义日期时间格式。

标准格式是作为长日期格式的较短版本准备的:

[string]$fmt = "MM/dd hh:mm"

脚本评估自动创建的轴 NumberFormat 成员,如果 NumberFormat 已本地化,则使用不同的字符串:

if ($axis.TickLabels.NumberFormat.Contains("JJJJ")) {
$fmt = "TT.MM. hh:mm"
}

最后,脚本尝试将字符串分配给轴成员:

 $axis.TickLabels.NumberFormat = $fmt

但是轴对象不接受这种格式。如果我读回该值,我会得到“标准”。

甚至此代码也会将数字格式重置为标准:

 $fmt = $axis.TickLabels.NumberFormat
$axis.TickLabels.NumberFormat = $fmt

如何设置自定义日期时间格式?

编辑:本地化 DE-DE 的标准日期时间格式是“TT.MM.JJJJ hh:mm”。如果创建图表,Excel 将使用此默认值。该格式对于 DE-DE 有效,即使在您的 Excel 本地化中可能未知。

最佳答案

问题不在于数字格式。

您需要将轴类型设置为“文本”,然后才能向其添加日期并在其上应用自定义格式(带有时间位)。

这有效:

$chart.Axes(1).CategoryType =2
$axis= $chart.axes(1)
$axis.TickLabels.NumberFormat = "DD.MM. hh:mm"

如果您将 Axix 类别保留为默认/自动,数字格式将无法按预期工作。

$axis= $chart.axes(1)
$axis.TickLabels.NumberFormat = "DD.MM. hh:mm"

您的数字格式中有一个时间格式,除了散点图之外,没有其他东西支持轴上的时间格式。因此,您需要首先更改轴类型。

关于vba - 从字符串变量分配 Excel 数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47980831/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com