小编Sof*_*mur的帖子

Excel中单元格的数值类型是否始终被视为DOUBLE?

在VBA中,如此规范所示,数值可以有多种类型:Double,Integer,Long,LongLong,Single,Decimal,Byte.但是,似乎在Excel中,对于包含数值的单元格,其类型始终被视为Double.

Excel公式或VBA代码中有多个函数可以检查单元格的数据类型.例如,TypeName函数在VBA,Excel中的TYPE函数,是Excel的功能等,但似乎他们可以返回数值上等类型是,其他数字类型(整型,长整型,字节...)永远无法被发现.

谁能告诉我,我是对还是错?

excel vba excel-vba

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

从2个仿函数中提取常用函数

我已经定义了一个模块类型ZONE和两个仿函数(ZoneFunZoneFunPrec)来构建它:

(* zone.ml *)
module type ZONE =
sig
  type info
  type prop
  type t = { p: prop; i: info }
  val f1 : t -> string
end

module ZoneFun (Prop : PROP) = struct
  type info = { a: int }
  type prop = Prop.t
  type t = { p: prop; i: info }
  let f1 z = "f1"
end

(* zoneFunPrec.ml *)
module ZoneFunPrec (Prop: PROP) (Prec: ZONESM) = struct
  type …
Run Code Online (Sandbox Code Playgroud)

ocaml module functor

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

为功能设置计时器

我已经定义了一个值列表:data : int list和一个函数f: int -> unit,以及一段代码:

for i = 0 to (List.length data) - 1 do
  let d = List.nth data i in
  f d
done
Run Code Online (Sandbox Code Playgroud)

现在,我想设置一个最大运行时间f.例如,如果f d超过一定时间maximal,执行f d停止,我们继续执行下一个元素data.

有谁知道怎么做?

UPDATE1:

在评论之后,我想补充一点,对f大部分元素的应用data最终会引发异常.这是正常的并被接受.所以代码看起来像:

List.iter
  (fun d ->
     try
       (f d)
     with
     | e ->
       printf "%s\n" (Printexc.to_string e))
data
Run Code Online (Sandbox Code Playgroud)

unix time ocaml signals timer

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

去掉cpp生成的注释

我使用#include ".../frontend/tokens.mll"in lexer.mll,然后cpp -C -P frontend/lexer.mll -o frontend/lexer_new.mll生成lexer_new.mll.

这一直有效,直到我昨天将我的 ubuntu 从 12.04 升级到 14.04。

编译报错:

ocamllex frontend/lexer_new.mll
File "frontend/lexer_new.mll", line 1, character 1: illegal character /.
make: *** [frontend/lexer_new.ml] Error 3
Run Code Online (Sandbox Code Playgroud)

那是因为在lexer_new.mll开始处插入了几行 C 注释:

/* Copyright (C) 1991-2014 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU …
Run Code Online (Sandbox Code Playgroud)

gcc ocaml c-preprocessor

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

是否可以将一组递归函数拆分为OCaml中的2个文件?

我有一个非常长的文件,其中包含一组递归函数.递归是必要的,代码也是有效的.但我只想将文件拆分为2个或更多文件以提高可读性.但我不知道我们如何分裂let rec ... and ...OCaml ......

有谁知道OCaml是否提供了这样做的任何机制(例如,指定接口或写入的方法makefile)?

非常长的文件可能如下所示:

let rec f1 () =
  ...
  f7 (); (* f7 is called only once by all the functions in the file *)
  f2 ();
  ...
and f2 () =
  ...
  f1 ();
...
and f7 () =
  ...
  f1 (); 
  ...
Run Code Online (Sandbox Code Playgroud)

recursion ocaml makefile

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

如何调用js_of_ocaml生成的函数?

我是JavaScript新手,正在尝试使用js_of_ocaml

我首先写的很简单cubes.ml

let simple (a: int) =
  a + 1234
Run Code Online (Sandbox Code Playgroud)

然后编译它:

ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
          -syntax camlp4o -linkpkg -o cubes.byte cubes.ml
Run Code Online (Sandbox Code Playgroud)

然后生成JavaScript文件:

js_of_ocaml cubes.byte
Run Code Online (Sandbox Code Playgroud)

这是生成的cubes.js。请注意,我们在该文件中找不到1234名称或功能名称simple

我还有另一个JavaScript文件Home.js,我希望该函数callSimple调用在中生成的内容cubes.js。但是我不知道怎么写。有人可以帮忙吗?

(function () {
    ...
    function callSimple(a) {
        return ???;
    };
    ...
})();
Run Code Online (Sandbox Code Playgroud)

编辑1:

我尝试了@EdgarAroutiounian提出的解决方案:

(* cubes.ml *)
let () =
  Js.Unsafe.global##.jscode := (object%js
    val simple = Js.wrap_meth_callback
        (fun a -> a + 1234)
    val speak …
Run Code Online (Sandbox Code Playgroud)

javascript ocaml js-of-ocaml

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

搜索名称中包含关键字的存储库中的代码

github搜索中,以下字符串允许我搜索JavaScript包含Acode在用户的所有存储库中的代码NameOfUser:

user:NameOfUser language:JavaScript ACode
Run Code Online (Sandbox Code Playgroud)

现在,我想添加另一个条件:我只对包含ACode在名称所包含 的存储库中的代码感兴趣repokey.

有谁知道如何写请求?

github

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

Office加载项是否总是需要Internet访问才能工作?

让我们以Excel为例。在Excel 2016中,当我在中选择一个加载项时STORE,单击之后Trust It,是否将加载项的代码(.html.js文件)下载或安装在我的计算机上?

换句话说,是否MY ADD-INS在我的机器上已经安装了下面的加载项,这样我可以在没有Internet的情况下加载和运行它们(如果加载项不向Internet发送或从Internet接收特殊数据)?

在此处输入图片说明

我问这个问题,是因为我想知道基本加载项是否始终需要Internet访问才能正常工作。

ms-office office-js

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

获取和设置文本区域中的文本选择

我想创建一个文本区域,用户可以在其中选择文本的一部分,我将根据他们的选择做出反应。所以我需要

1)获取选择文本的开始和结束位置

2)获取焦点的位置,如果它在textarea中并且没有选择

似乎不同的浏览器执行此操作的功能有所不同。那么谁能告诉我在 Office 加载项中执行此操作的方法是什么?

我尝试了以下两种方法(即选择 中的部分文本myTextarea,单击button,然后调试代码),它们似乎不是正确的功能。

(function() {
    "use strict";

    Office.initialize = function(reason) {
        $(document).ready(function() {
            app.initialize();
            $('#button').click(showSelection);
        });
    };

    function showSelection() {
        // way 1
        console.log(document.selection); // undefined
        document.getElementById("myTextarea").focus();
        var sel = document.selection.createRange(); // Uncaught TypeError: Cannot read property 'createRange' of undefined
        selectedText = sel.text;
        // way 2 
        console.log(document.getElementById("myTextarea").selectionstart); // undefined
        console.log(document.getElementById("myTextarea").selectionend); // undefined
    }
})();
Run Code Online (Sandbox Code Playgroud)

另外,如果有人能告诉我如何通过代码实现以下内容那就太好了:

1)从开始和结束位置选择文本的一部分

2)将焦点设置在textarea的某个位置

编辑1:

我刚刚window.getSelection()在我的 Excel 加载项中尝试过:

function showselection() {
    var a = window.getSelection();
    var …
Run Code Online (Sandbox Code Playgroud)

ms-office office-js

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

.xlsx 和 .zip 之间的转换

我想操作Office Open XMLExcel 的格式,但即使只是.zip和之间的转换.xlsx也会产生错误:

  1. test.xlsx通过Excel创建一个非常简单的
  2. 右键单击test.xlsx=>Rename作为text.xlsx.zip
  3. 右键单击text.xlsx.zip=>Extract all到名为的文件夹text.xlsx
  4. 右键单击text.xlsx文件夹 => Send to=>Compressed (zipped) folder命名text_2.xlsx.zip
  5. 右键单击text_2.xlsx.zip=>Rename作为text_2.xlsx
  6. 用Excel打开text_2.xlsx,出现如下错误:

在此输入图像描述 在此输入图像描述

有谁知道那里出了什么问题吗?

openxml

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