【问题标题】:separating data in one cell into multiple cells [closed]将一个单元格中的数据分成多个单元格[关闭]
【发布时间】:2016-07-20 19:16:10
【问题描述】:

我目前在我的代码中使用以下内容:

F = F & "," & I

这部分代码在一个单元格中以以下格式输出我的结果: 1130,1160,1190,1220,1250,1280,1310,1340,1370,1400,1430,1460,1490

我想知道是否可以使用类似的代码将每个数字输入到单个列中自己的单元格中。

【问题讨论】:

  • 除了放入变量 F 之外,没有任何代码可以将数据放在任何地方。我假设您有一个循环来继续附加 I 所以而不是仅仅将其添加到 F 只是增加您的行号并将其存储到细胞。

标签: excel excel-2013 vba


【解决方案1】:

您使用Split(F, ",") 创建一个数组。然后使用Range.Resize 使您的目标范围与数组大小相同。最后,使新范围 = 数组。

Sub Example()

    Dim F As String
    Dim a() As String

    F = "1130,1160,1190,1220,1250,1280,1310,1340,1370,1400,1430,1460,1490"
    a = Split(F, ",")

    Range("A1").Resize(1, UBound(a)) = a


End Sub

【讨论】:

  • 当我尝试运行它时,它给了我以下代码部分的 1004 运行时错误 >Range("A4").Resize(1, UBound(a)) = a
  • 我更新了我的答案。正确的语法是 >Range("A1").Resize(1, UBound(a) + 1) = a
  • 啊,好的,谢谢!那么现在有没有一种方法可以将 F = 设置为包含数组的单元格,这样如果/当数字改变时,单元格也会随之改变?
  • 我真的不确定你想做什么。您需要发布更多代码。
  • 这是我的函数 Function InBetween(First As Integer, Last As Integer) Dim i As Long, F As String, a() As String F = First For i = First + 30到最后一步 30 F = F & "|" & i Next i InBetween = F End Function 我使用它来安排兼职员工,并使用那里的可用性作为第一次和最后一次来创建仅包含其可用性内的时间的数据验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
相关资源
最近更新 更多