相关疑难解决方法(0)

如何在Excel宏中使用JavaScript?

这里有一个由Google托管的非常酷的差异类:

http://code.google.com/p/google-diff-match-patch/

我之前在一些网站上使用过它,但现在我需要 Excel宏中使用它来比较两个单元格之间的文本.

但是,它仅适用于JavaScript,Python,Java和C++,而不适用于VBA.

我的用户仅限于Excel 2003,因此纯.NET解决方案无效.手动将代码翻译为VBA将花费太多时间并且难以升级.

我考虑的一个选项是使用.NET编译器(JScript.NET或J#)编译JavaScript或Java源代码,使用Reflector输出为VB.NET,然后最终手动将VB.NET代码降级为VBA,给我一个纯粹的VBA解决方案.在使用任何.NET编译器进行编译时遇到问题之后,我放弃了这条路径.

假设我可以使用一个可用的.NET库,我本可以使用ExcelDna(http://www.codeplex.com/exceldna)这个开源Excel插件来简化.NET代码集成.

我的最后一个想法是托管一个Internet Explorer对象,向它发送JavaScript源代码并调用它.即使我让它工作,我的猜测是它会变得很脏而且很混乱.

更新:找到解决方案!

我通过接受的答案使用了下面描述的WSC方法.我不得不稍微更改WSC代码以清理差异并返回一个VBA兼容的数组数组:

function DiffFast(text1, text2)
{
    var d = dmp.diff_main(text1, text2, true);
    dmp.diff_cleanupSemantic(d);
    var dictionary = new ActiveXObject("Scripting.Dictionary"); // VBA-compatible array
    for ( var i = 0; i < d.length; i++ ) {
    dictionary.add(i, JS2VBArray(d[i]));
    }
    return dictionary.Items();
}

function JS2VBArray(objJSArray)
{
    var dictionary = new ActiveXObject("Scripting.Dictionary");
    for (var i = 0; i < objJSArray.length; i++) {
        dictionary.add( i, objJSArray[ i ] );
        }
    return dictionary.Items(); …
Run Code Online (Sandbox Code Playgroud)

.net javascript j# excel vba

19
推荐指数
1
解决办法
4万
查看次数

如何使用AES加密VBScript?

我希望使用特定的密钥和IV值在VBScript中使用Rijndael/AES加密一些数据.有没有好的功能库或COM组件可以使用?

我看着CAPICOM ; 它只允许使用密码,并且不允许设置特定的密钥和IV值.

vbscript aes rijndael asp-classic rfc2898

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

标签 统计

.net ×1

aes ×1

asp-classic ×1

excel ×1

j# ×1

javascript ×1

rfc2898 ×1

rijndael ×1

vba ×1

vbscript ×1