小编Pat*_*nne的帖子

键入左括号时Excel崩溃

这是我不明白的一个.

鉴于此类模块(剥离到重现崩溃所需的最低限度):

VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "TestCrashClass"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Public Function Init() As TestCrashClass
Attribute Init.VB_UserMemId = 0
    Dim tcc As New TestCrashClass
    Set Init = tcc
End Function

Public Property Get Data() As String
    Data = "test data"
End Property
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么当我输入以下代码时Excel完全崩溃:

Sub MakeExcelCrash()
    With TestCrashClass(
Run Code Online (Sandbox Code Playgroud)

在这一点上,我这个可爱的消息:

Excel崩溃 - 哎呀!

即使我输入一个没有违规括号的完整程序然后尝试添加它们,我也会遇到同样的崩溃.

我能让Excel不崩溃的唯一方法是将一组()从其他地方复制/粘贴到这行代码中.

 Sub MakeExcelCrash()
     With TestCrashClass()
         Debug.Print …
Run Code Online (Sandbox Code Playgroud)

excel vba vbe

11
推荐指数
2
解决办法
265
查看次数

从字符串输出格式

昨晚我碰到了一些东西,让我疯了十分钟,十五分钟才发现它.但我不明白为什么会这样,所以我希望有人可以解释.

从VBA IDE中的立即窗口:

?Format(0.5, "HH:MM AM/PM")
12:00 PM
?Format("0.5", "HH:MM AM/PM")
12:05 AM
?Format(CDbl("0.5"), "HH:MM AM/PM")
12:00 PM
Run Code Online (Sandbox Code Playgroud)

这个页面我看到0.5应该对应于12:00 PM,因为一小时是0.04166 ...((12 * (1/24) = 0.5)).正如你所看到的,如果我传递一个数字,Format()但是如果我传递与字符串相同的数字则不会.

根据同一页面的信息,1分钟为0.00069444 ...((1/(24*60))),意味着上午12:05应存储在Excel中为0.003472222((0 * (1/24)) + (5 * (1/(24*60)))).事实上:

?Format(0.003472222, "HH:MM AM/PM")
12:05 AM
Run Code Online (Sandbox Code Playgroud)

更奇怪的是我不明白:

?Format(2.5, "HH:MM AM/PM")
12:00 PM
?Format("2.5", "HH:MM AM/PM")
02:05 AM
Run Code Online (Sandbox Code Playgroud)

但...

?Format(2.523, "HH:MM AM/PM")
12:33 PM
?Format("2.523", "HH:MM AM/PM")
12:33 PM
Run Code Online (Sandbox Code Playgroud)

我在文档中找到的所有内容都表示"时间存储为实数的一部分.小数点右侧的值表示时间.例如,中午(中午12:00)表示为0.5." (来自Excel 2010的内置VBE词汇表)因此,2.5应该导致12:00 PM的时间,因为小数点右边的部分是,0.5并且 …

excel vba

6
推荐指数
1
解决办法
111
查看次数

pandoc - 用 Word docx 的自定义样式替换标题

我正在使用panfrude为 pandoc 编写一个 python 过滤器,以将 Markdown 转换为 Word 文档。通常,pandoc 将 Markdown 标题转换为 Word 的内置样式,称为标题 1、标题 2 等。但是由于我必须使用的 Word 模板的特殊性,我需要将所有 Markdown 标题更改为 Word 中相应的自定义样式,例如标头级别 1 => 标头 1,级别 2 => 标头 2,等等。

这是我为测试过滤器而制作的快速示例 Markdown 文件:

# Heading 1

some text in a paragraph

## Heading 2

a little bit more text down below
Run Code Online (Sandbox Code Playgroud)

本质上,我想转换该 Markdown,就像我写的那样:

<div custom-style="Header1">Heading 1</div>

some text in a paragraph

<div custom-style="Header2">Heading 2</div>

a little bit more text down below
Run Code Online (Sandbox Code Playgroud)

这样,当我跑步时:

pandoc -S test_input.md -o test_output.docx …
Run Code Online (Sandbox Code Playgroud)

python pandoc

6
推荐指数
1
解决办法
4254
查看次数

标签 统计

excel ×2

vba ×2

pandoc ×1

python ×1

vbe ×1