将范围与其之间的值连接起来

将范围与其之间的值连接起来

我使用范围数据,并希望填充一个单元格,其中包含最小值和最大值之间设定的增量值。例如,最小外径为 1 1/16",最大外径为 1 11/32"。我想填充第三个单元格,其中包含每个端点以及介于两者之间的所有值,精度为 1/32 英寸:1 1/16";1 3/32";1 1/8";1 5/32";1 3/16";1 7/32";1 1/4";1 9/32";1 5/16";1 11/32"

我可以在 Excel 2007 中执行此操作吗?

到目前为止,我只是从一个主分号分隔列表中复制和粘贴 1 1/64 和 2" 之间的所有值,然后返回并复制并将“1”替换为“2”,然后将它们添加到字符串中,依此类推。

我刚刚尝试了 Madball73 的 VBA 代码。当且仅当每个限制的整数值相同并且我删除了“时,我才能让它生成值。例如,我尝试了 1 1/64 到 1 1/4(并将增量更改为 0.015625,因为这个是到第 64 位)。VBA 代码返回:“;1 1/64";1 1/32";1 3/64";1 1/16";1 5/64";1 3/32";1 7/64";1 1/8";1 9/64";1 5/32";1 11/64";1 3/16";1 13/64";1 7/32";1 15/64";1 1/4”

越来越近!

更新:好的,经过相当多的调整和添加最终的“通过连接和修剪前面的”;,我可以让它工作了。

更新 2:它似乎不再起作用了 :(

答案1

这是为您准备的自定义 VBA 函数。通过设置公式来使用它: =IterateSizes(value(a1),value(a2))

Function IterateSizes(btmSize, topSize)
rtnValue = ""
incr = 0.03125

For i = btmSize To topSize Step incr
    fraction = Trim(Excel.WorksheetFunction.Text(i, "# ??/??"))
    rtnValue = rtnValue & """;" & fraction
Next i

IterateSizes = rtnValue
End Function

注意。它很快就被拼凑起来,并适用于我给出的几个输入(不包括双引号)。但是,它没有经过全面测试,不能处理无效输入,没有进行边界测试等,但这是一个起点。

答案2

这里有一个更简单的非 VBA 选项 -在 Excel 中不使用 VBA 连接单元格区域

这些是关键步骤。点击该链接可查看图片、评论和其他技巧。

创建分隔符

如果我们可以使用字符来分隔值,那就太好了。方法如下:

  • 选择单元格 B2。
  • 在公式栏中输入 =A1:A50&", "。
  • 编辑:根据您的区域设置,尝试以下操作:=TRANSPOSE(A1:A50)&", "
  • 按 F9。
  • 删除公式栏中的花括号。
  • 删除最后一个分隔符。
  • 在公式栏中的所有字符前输入 =Concatenate(。
  • 在公式栏中的最后一个字符后输入)。
  • 按 Enter 键

我经常这样做,我发现这个小小的修改更加方便(Office 2016):

  • 如上所述,输入类似内容=A1:A50&" "然后按 F9
  • 删除={开头的 和}结尾的 ,然后按 Enter
  • 查找并将 ( ctrl-H)替换";""&"
  • 添加=到单元格开头

相关内容