小编ptp*_*son的帖子

按Esc时停止Excel宏执行将无效

我在XP上运行excel 2007.

除了按下escape之外,有没有办法阻止宏在执行期间运行?通常,如果我认为我创建了一个infinate循环或以其他方式搞砸了一些东西我点击了逃逸它会抛出一个错误,但宏停止了.

这一次(我以前做过但不是很糟糕),我设置了一个msgbox进行快速调试.原来它必须循环大约6000次,这意味着我必须"OK"6000个消息框,这需要几分钟.在运行之前我没有保存(另一个错误)所以我无法打开任务管理器退出.

有没有另一种方法可以阻止宏的执行,以防我再次这样做?

excel vba excel-vba terminate

34
推荐指数
3
解决办法
23万
查看次数

让mingw-get正确安装 - mingw/msys路径缺失加上更多!

我正在运行Windows XP.

我一直在关注本教程,所以在这里下载mingw-get-inst .

我已经完成了几次,最后一次检查boes安装一切,包括但不限于gcc,g ++,MSYS和MinGW Compiling Suite.我告诉它也要制作程序菜单快捷方式.

我相信我已经正确地将MinGW/bin添加到环境设置的路径中.

所以我现在有了MSYS shell的快捷方式.它转到C:\ MinGW\msys\1.0\msys.bat,但整个msys目录不存在!

据我所知,已经下载了大量的"软件包"("mingw-get show"会带来很多!),但它似乎并没有正确安装任何软件包.

另外,我应该能够使用cmd.exe中的"g ++ foo.cpp -o foo.exe"等命令,还是仅使用MSYS shell中的命令?因为我无法使用cmd.exe.

请帮忙!

c++ windows-xp mingw g++ msys

9
推荐指数
1
解决办法
2万
查看次数

上下文敏感的diff实现

总结和基本问题

使用MS Access 2010和VBA(叹息..)

我正在尝试实现一个专门的Diff函数,它能够根据更改的内容以不同的方式输出更改列表.我需要能够生成一个简明的更改列表,以便为我们的记录提交.

我想使用诸如html标签之类的东西,<span class="references">These are references 1, 6</span>以便我可以使用代码查看更改并自定义更改文本的输出方式.或其他任何东西来完成我的任务.

我认为这是一种提供自定义输出的可扩展方式的方法,并可能将事物移动到更强大的平台并实际使用html/css.

有谁知道一个类似的项目可能能指出我正确的方向?

我的任务

我有一个访问数据库,其中包含工作操作指令表 - 通常是200-300个操作,其中许多操作从一个修订版更改为另一个修订版.我目前已经实现了一个迭代表的函数,查找已更改的指令并进行比较.

请注意,每个操作指令通常是几个句子,最后有几行,带有一些文档引用.

我的算法基于"An O(ND)差分算法及其变化",效果很好.

Access支持"Rich"文本,这只是美化简单的html,因此我可以轻松生成带有格式化添加和删除的全文,即添加标签<font color = "red"><strong><i>This text has been removed</i></strong></font>.Diff过程的主要输出是操作的全文,其中包括彼此内联的未更改,已删除和插入的文本.diff过程添加<del><ins>标签稍后将替换为格式化文本(结果类似于堆栈交换编辑的更改视图).

但是,就像我说的,我需要以人类可读格式列出的更改.事实证明这很困难,因为许多变化产生了模糊性.

例如:如果某种化学品从"A类"变为"C类",则容易生成的更改文本是"将'A'更改为'C'",这对于审核该类型的人来说并不是非常有用.变化.更常见的是文档参考结尾:将SOP 3添加到列表中,例如"SOP 1,2,3",生成文本"添加'3'".显然也没用.

最有用的是指定为"SOP"文本的文本的自定义输出,以便输出为"添加对SOP 3的引用".

我从以下解决方案开始:

将单词组合在一起,例如将诸如"SOP 1,2,3"的文本作为一个标记来进行比较.这将生成文本"将'SOP 1,2'改为'SOP 1,2,3'.当存在大型列表并且您试图确定实际更改的内容时,这会变得混乱.

我现在在哪里

我现在正在尝试在运行diff算法之前添加额外的html标签.例如,我将通过"预处理器"运行文本,将"SOP 1,2"转换为SOP 1,2

一旦Diff过程返回完整的更改文本,我会浏览它,注意文本的当前"类",当有一个<del><ins>我捕获标记之间的文本并使用SELECT CASE类上的块来解决每个更改.

这实际上在大多数情况下都可以正常工作,但是我必须解决许多问题,例如添加Diff决定最短路径是删除某些开放标记并插入其他开放标记.这会创建一个场景,即有两个<span>标签,但只有一个</span>标签.

最终的问题

我正在寻找建议,要么继续我已经开始的方向,要么在投入更多时间进入次优解决方案之前尝试不同的方法.

在此先感谢所有人.

另请注意:

典型运行的时间大约是1.5到2.5秒,我尝试了更多花哨的东西和一堆debug.prints.因此,通过一两个额外的通行证不会是杀手.

html algorithm diff vba access-vba

7
推荐指数
1
解决办法
411
查看次数

在多个页面上为导航栏创建可重用的html

我认为拥有可重复使用的代码会很方便,特别是对于导航栏,因为它在我的所有页面中都是相同的.这样,我就不必浏览每个页面,并在发生更改时单独手动编辑每个页面.

似乎可以使用iframe,但我尝试了它,整个页面样式都没有出现问题.我可以解决它,但我想知道是否有类似的东西.

如果像这样的东西可以工作,那将是很棒的:

var navbar = document.getElementById('navbar');
navbar.innerHtml = url('navigation.txt');

我目前正在我的网站上离线工作,所以我认为我不能发出xmlhttp请求.正确?至少我还没有得到任何ajax示例.这很不幸,因为我觉得我可以轻松地将它用于我的应用程序.

这是我的导航栏标记.这不是很复杂,所以我有一种感觉,我最后会手动编辑它.

<nav>
    <ul id="navbar">
        <li><a href="biosketch.html">Biosketch</a></li>
        <li><a href="projects.html">Class Projects</a>
            <ul>
                <li><a href="projects.html#SeniorProject">Senior Project</a></li>
                <li><a href="projects.html#WindTurbine">Wind Turbine</a></li>
            </ul>
        </li>
        <li><a href="#">Resume</a></li>
        <li><a href="#">Work Experience</a></li>
        <li><a href="#">Contact Me</a></li>
    </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

html javascript navigation code-reuse

5
推荐指数
1
解决办法
2万
查看次数

有什么理由避免Application.Worksheetfunction吗?

我正在编写一个宏以遍历一些记录,并希望进行for循环,以避免在循环时出现无限的机会,例如:

For i = 0 to COUNT
  **do stuff with START_CELL.Offset(i,0)
Next
Run Code Online (Sandbox Code Playgroud)

我不记得如何从VBA进行计数,因此搜索将我发送到这里:使用VBA计数Column中的非空白单元格。一个建议是

n = Worksheets("Sheet1").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
Run Code Online (Sandbox Code Playgroud)

这似乎过于复杂,所以我做了一些进一步的挖掘,然后决定要使用:

COUNT = Application.WorksheetFunction.Count(COUNT_RANGE)
Run Code Online (Sandbox Code Playgroud)

该页面上的另一个示例 Application.WorksheetFunction.CountA(),但是现在我仍然很担心(偏执),我有理由避免使用它。有吗

谢谢大家

excel vba worksheet-function excel-vba

5
推荐指数
1
解决办法
4252
查看次数

Typescript 映射类型,有条件地添加可选修饰符

是否可以有条件地使映射类型属性可选?

考虑这种类型

type Definition {
  name: string,
  defaultImplementation?: ImplementationType
}
Run Code Online (Sandbox Code Playgroud)

以及他们的记录:

type DefinitionMap = Record<string, Definition>
Run Code Online (Sandbox Code Playgroud)

我想创建一个映射类型,如果提供了输入,则该类型的实现是可选的,但如果没有提供输入,则需要映射类型实现。

对于DefinitionMap这样一个

{
  foo: { name: 'x' },
  bar: { name: 'y', defaultImplementation: { /*...*/ } }
}
Run Code Online (Sandbox Code Playgroud)

我想要一个映射类型,例如

{
  foo: ImplementationType,
  bar?: ImplementationType
}
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用条件并添加undefined到类型中,但这不起作用。

type ImplementationMap<T extends DefinitionMap> = {
  [K in keyof T]: T[K] extends { defaultImplementation: any }
    ? ImplementationType | undefined
    : ImplementationType
}
Run Code Online (Sandbox Code Playgroud)

我知道条件分支的行为符合我的要求,但添加undefined实际上并不会使该字段成为可选字段。

typescript mapped-types

5
推荐指数
2
解决办法
1793
查看次数

什么是g_editable属性?

我一直在看<div ... g_editable="true" ... >.

我已经搜索了任何可以帮助我理解其目的的东西,但是我所得到的只是更多的标记而没有解释它.

有人可以解释一下吗?

html

3
推荐指数
1
解决办法
1679
查看次数

错误LNK2019 - 抽象类中的虚拟析构函数

可能重复:
C++中的纯虚拟析构函数

我有两个类:抽象的"Game"类和派生的"TestGame"类.TestGame中的所有函数都是单独实现的(为了让它编译).我只收到一个错误:

TestGame.obj:错误LNK2019:未解析的外部符号"public:virtual __thiscall Game ::〜Game(void)"(?? 1Game @@ UAE @ XZ)在函数"public:virtual __thiscall TestGame :: ~TestGame(void)"中引用"(?? 1TestGame @@ UAE @ XZ)

这是我的类定义:

class Game
{
public:
    virtual ~Game(void) = 0;

    virtual bool Initialize() = 0;
    virtual bool LoadContent() = 0;
    virtual void Update() = 0;
    virtual void Draw() = 0;
};

class TestGame: public Game
{
public:
    TestGame(void);
    virtual ~TestGame(void);

    virtual bool Initialize();
    virtual bool LoadContent();
    virtual void Update();
    virtual void Draw();
};
Run Code Online (Sandbox Code Playgroud)

我尝试了几件事,但我觉得我可能遗漏了一些关于抽象和派生类如何工作的基本原理.

c++ lnk2019 virtual-destructor

2
推荐指数
1
解决办法
5720
查看次数