【问题标题】:Is there a way to use a For loop to add to a String? VBA有没有办法使用 For 循环添加到字符串? VBA
【发布时间】:2020-12-17 15:54:37
【问题描述】:

我正在尝试将数字添加到字符串中。我想为“a”循环 1 到 80,为“s”循环 1 到 40,以便将这些数字添加到字符串 r(1) 和 r(2)。

我试图得到的结果是这样格式化的 r(1) = "PD 1" 等等; r(2) = "QR 1" 等等。

Dim a As Integer

Dim s As Integer

Dim r(1 To 2) As String

For a = 1 To 100

    r(1) = ""PD " & "a""

Next a

For s = 1 To 40

    r(2) = "QR " & s

Next s

【问题讨论】:

  • 您想要一个所有组合连接在一起的大字符串,还是希望每个组合作为数组中的不同索引?目前,您将只覆盖除最后一次迭代之外的所有内容。
  • Warcupine - 我希望它们作为我数组中的不同索引。稍后在代码中,我有一个通过 r(1) 和 r(2) 的 For 语句循环。
  • 所以你想要一个数组数组?
  • BigBen - 是的,我很确定这就是我要找的。我在很多方面都是新手,但感谢 Google,我设法将一些东西放在一起。

标签: excel vba string for-loop


【解决方案1】:

如果你想要一个数组,也许:

Dim pd(1 To 100) As String
Dim qr(1 To 40) As String

Dim i As Long
For i = LBound(pd) To UBound(pd)
    pd(i) = "PD " & i
Next

For i = LBound(qr) To UBound(qr)
    qr(i) = "QR " & i
Next

Dim r(1 To 2)
r(1) = pd
r(2) = qr

【讨论】:

  • 这更近了,但它还在继续。
  • 不确定您所说的“继续前进”是什么意思?这是一个数组数组...r(1) 包含第一个数组,r(2) 包含第二个数组。第一个内部数组有 100 个元素,第二个有 40 个。
  • 好像在重复。这是它返回的内容:PD 1、PD 1、PD 2、PD 2 等。
  • 但是你不能用一个数组来做到这一点......你必须这样做r(1)(1)。老实说,鉴于您提供的代码,我根本看不到在这里使用数组的好处,更不用说数组数组了。
  • 我的意思是这不是一个限制......我想,也许如果您在原始问题中添加更多代码来解释您的最终目标是什么,也许这会带来更好的解决方案。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
相关资源
最近更新 更多