标签: range

如何在Excel中获取范围的大小

使用VBA,是否可以按像素或单位获得给定范围的大小?(我不关心哪个单位,因为我只使用它与相同单位的其他测量相关).

谢谢.

size excel vba range excel-vba

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

Excel VBA:1步到字符串数组的范围

我知道你可以轻松地获取一系列单元格并将它们打成Variant数组,但我想使用字符串数组(因为它是单维的,占用的内存比Variant数组少).

有没有办法自动将范围转换为字符串数组?

现在我正在使用一个函数来获取范围并将值保存在变量数组中,然后将变量数组转换为字符串数组.它工作得很好,但我正在寻找一种直接从范围到字符串数组的方法.任何帮助将不胜感激.

Function RangeToArray(ByVal my_range As Range) As String()

Dim vArray As Variant
Dim sArray() As String
Dim i As Long

vArray = my_range.Value
ReDim sArray(1 To UBound(vArray))

For i = 1 To UBound(vArray)
    sArray(i) = vArray(i, 1)
Next

RangeToArray = sArray()

End Function 
Run Code Online (Sandbox Code Playgroud)

更新:在将数据转换为一维字符串数组之前,看起来没有办法跳过将数据抛入变量数组的步骤.如果它是真的是一种耻辱(即使它不需要太多努力,我喜欢超优化,所以我希望有一种方法可以跳过这一步).如果没有解决方案,我会在几天内结束这个问题.谢谢你的帮助,伙计们!

更新2:答案是西蒙,他付出了很大的努力(其他人也是如此),并且完全指出,一次性从阵列到阵列阵列确实是不可能的.感谢大家.

arrays string excel vba range

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

是否可以使用范围作为Ruby中哈希的键?

我正在尝试创建一个脚本来浏览索引,查看每个页码,然后告诉我该条目的书的哪一章.这是我正在做的事情的近似值:

@chapters = {
  1 => "introduction.xhtml",
  2..5 => "chapter1.xhtml",
  6..10 => "chapter2.xhtml",
  11..18 => "chapter3.xhtml",
  19..30 => "chapter4.xhtml" }

def find_chapter(number)
  @chapters.each do |page_range, chapter_name|
    if number === page_range
      puts "<a href=\"" + chapter_name + "\page" + number.to_s + "\">" + number.to_s + </a>"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

find_chapter(1)会吐出我想要的字符串,但find_chapter(15)不会返回任何内容.是不是可以像这样使用范围?

ruby hash range

21
推荐指数
4
解决办法
7175
查看次数

在Swift中生成一个范围内的随机整数的最简单方法是什么?

我到目前为止设计的方法是这样的:

func randRange (lower : Int , upper : Int) -> Int {
    let difference = upper - lower
    return Int(Float(rand())/Float(RAND_MAX) * Float(difference + 1)) + lower
}
Run Code Online (Sandbox Code Playgroud)

这会生成低位和高位之间的随机整数.

random limits range swift

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

在contenteditable div中选择范围

我有一个contenteditablediv和几段.

这是我的代码:

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <div id="main" contenteditable="true" 
             style="border:solid 1px black; width:300px; height:300px">
            <div>Hello world!</div>
            <div>
                <br>
            </div>
            <div>This is a paragraph</div>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

假设,我想做一个范围选择,其中包含字符串"world!This is"

怎么做?

javascript range selection

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

将Range或DocumentFragment转换为字符串

有没有办法在W3C兼容的浏览器中获取JavaScript范围对象的html字符串?

例如,假设用户选择以下内容:Hello <b>World</b>
可以使用该Range.toString()方法将"Hello World"作为字符串.(在Firefox中,也可以使用文档getSelection方法.)

但我似乎无法找到获取内部HTML的方法.

经过一番搜索,我发现范围可以转换为DocumentFragmentObject.

但是DocumentFragments没有innerHTML属性(至少在Firefox中;没有尝试过Webkit或Opera).
这对我来说似乎很奇怪:显然应该有一些方法来访问所选项目.

我意识到我可以创建一个documentFragment,将文档片段附加到另一个元素,然后获取该innerHTML元素.
但该方法将自动关闭我选择的区域内的任何打开的标签.
除此之外,肯定有一个明显的"更好的方法",而不是将它附加到dom只是为了让它成为一个字符串.

那么,如何获取Range或DocFrag的html字符串?

javascript range tostring selection documentfragment

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

输入类型范围的步骤参数

是否可以为范围元素中的步骤参数指定小数?根据我读过的一些文章,包括一篇关于Nettuts的文章,这应该是可能的.这似乎不适用于任何浏览器.我尝试过Chrome,Safari和移动版Safari.我在这里误解了简单,还是这个还没有得到支持?

 <input id='something' type='range' min='0' max='20' step='.25' value='5' />
Run Code Online (Sandbox Code Playgroud)

html5 input range

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

连续整数运行

我在列表中有一些数据需要查找连续的整数运行(我的脑子想rle但不知道如何在这里使用它).

查看数据集并解释我所追求的内容会更容易.

这是数据视图:

$greg
 [1]  7  8  9 10 11 20 21 22 23 24 30 31 32 33 49

$researcher
[1] 42 43 44 45 46 47 48

$sally
 [1] 25 26 27 28 29 37 38 39 40 41

$sam
 [1]  1  2  3  4  5  6 16 17 18 19 34 35 36

$teacher
[1] 12 13 14 15
Run Code Online (Sandbox Code Playgroud)

期望的输出:

$greg
 [1]  7:11, 20:24, 30:33, 49

$researcher
 [1] 42:48

$sally
 [1] 25:29, 37:41

$sam
 [1] …
Run Code Online (Sandbox Code Playgroud)

design-patterns r range

20
推荐指数
5
解决办法
1172
查看次数

在contentEditable元素上按Enter键时,跨浏览器方式插入BR或P标记

当您按contentEditable元素上的Enter键时,每个浏览器都会以不同方式处理生成的代码:Firefox会插入BR标记,Chrome会在Internet Explorer插入P标记时插入DIV标记.

我拼命寻找解决方案,至少为所有浏览器使用BR或P,最常见的答案是:

插入BR标签:

$("#editableElement").on("keypress", function(e){
      if (e.which == 13) {
        if (window.getSelection) {
          var selection = window.getSelection(),
              range = selection.getRangeAt(0),
              br = document.createElement("br");
          range.deleteContents();
          range.insertNode(br);
          range.setStartAfter(br);
          range.setEndAfter(br);
          selection.removeAllRanges();
          selection.addRange(range);
          return false;
        }
      }
    });
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为似乎浏览器不知道如何设置插入符号,<br>这意味着以下操作没有做任何有用的事情(特别是如果在插入符号放在文本末尾时按Enter键):

range.setStartAfter(br);
range.setEndAfter(br);
Run Code Online (Sandbox Code Playgroud)

有些人会说:使用double <br><br>但是当你在文本节点中按Enter键时会产生两个换行符.

其他人会说总是<br>在contentEditable的末尾添加一个额外的,但是如果你有一个<div contenteditable><p>text here</p></div>并且你把光标放在文本的末尾然后点击回车,你将得到错误的行为.

所以我对自己说,也许我们可以使用P而不是BR,常见的答案是:

插入P标签:

document.execCommand('formatBlock', false, 'p');
Run Code Online (Sandbox Code Playgroud)

但这也不能始终如一地发挥作用.

如您所见,所有这些解决方案都有待改进.还有其他解决方案可以解决这个问题吗?

javascript range selection contenteditable

20
推荐指数
1
解决办法
2108
查看次数

使用范围(迭代器对)初始化std :: array

如何std::array从范围初始化(由一对迭代器定义)?

像这样的东西:

vector<T> v;
...
// I know v has exactly N elements (e.g. I just called v.resize(N))
// Now I want a initialized with those elements
array<T, N> a(???);  // what to put here?
Run Code Online (Sandbox Code Playgroud)

我以为array会有一个构造函数接受一对迭代器,所以我可以做array<T, N> a(v.begin(), v.end()),但它似乎根本没有构造函数!

我知道我可以copy将矢量放入数组中,但我宁愿直接用矢量内容初始化数组,而不是先默认构造它.我怎么能够?

c++ arrays range stdvector c++11

19
推荐指数
3
解决办法
3953
查看次数