【问题标题】:How to list every value between cells throughout entire columns?如何列出整个列中单元格之间的每个值?
【发布时间】:2019-04-17 16:39:37
【问题描述】:

我正在尝试创建一个循环,将一行中两个单元格之间的每个值打印到一列中。我也希望它跳过/忽略非整数值。

例如:单元格 A5 包含 5673,单元格 B5 包含 5677。因此宏将输出 5673、5674、5675、5676 和 5677。

我找到了一些有用的示例,用于循环遍历每一行并打印每个值,但无法将两者结合起来。

打印两个数字之间的每个值:

[D1] = [A1].Value
ato = [B1].Value
[D1].DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1, Stop:=ato

遍历每一行:

LR = Range("A" & Rows.Count).End(xlUp).Row
For j = 1 To LR
   Cells(j, 1).Offset(0, 2).Value = ***Every cell value between Cells(j, 1) and Cells(j, 2)***
Next j

之前:

希望之后:

【问题讨论】:

  • 5674从何而来?你试过任何代码吗?
  • 看起来你想要一个循环遍历你的数组加上一个 if 语句中的嵌套循环,其中 if cell <> cells.offset(,1) then 从开始到结束循环;追加到列+1 中的最后一行。包括IsNumber()。尝试一下,用你的新信息更新你的帖子。
  • @SJR 我刚刚更新了我的帖子,希望能添加一些说明。我想要相邻列中数字之间的每个值。

标签: excel vba


【解决方案1】:

试试这个。您可以使用SpecialCells 挑选数字单元格,并使用Fill 生成中间序列。

Sub x()

Dim rA As Range, rCell As Range

For Each rA In Columns(1).SpecialCells(xlCellTypeConstants, xlNumbers).Areas
    For Each rCell In rA
        Range("D" & Rows.Count).End(xlUp)(2).Value = rCell.Value
        Range("D" & Rows.Count).End(xlUp).DataSeries Rowcol:=xlColumns, Step:=1, Stop:=rCell.Offset(, 1), Trend:=False
    Next rCell
Next rA

End Sub

【讨论】:

  • 这很好用,谢谢。老实说,我不了解内部循环是如何工作的,但我会尝试剖析和理解。再次感谢。
  • 我的荣幸。第一个区域涵盖了 A 列中的所有连续数字,即 A1:A2,因此您需要遍历它们中的每一个。
【解决方案2】:

如果您将始终拥有这两列,那么您可以使用此代码

for j = 1 to 2:for i = 1 to cells(rows.count,j).end(xlup).row
if isnumeric(cells(i,j)) then cells(rows.count,4).end(xlup).offset(1,0) = cells(i,j)
next:next

请记住,它会发布每一个数字,如果您需要删除重复项,您可以使用 range.removeduplicate 来完成

【讨论】:

    【解决方案3】:

    逐个单元格地循环遍历范围;测试IsNumericDuplicate values。注意:这只是一个测试代码,您应该始终添加工作簿和工作表引用

    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    
        For j = 1 To 2
            If IsNumeric(Cells(i, j)) And Cells(i, j).Offset(, 1).Value <> Cells(i, j).Value Then
                If IsEmpty(Cells(1, 4).Value) Then
                    Cells(1, 4) = Cells(i, j)
                Else: Cells(Rows.Count, 4).End(xlUp).Offset(1) = Cells(i, j)
                End If
            End If
        Next j
    Next i
    

    【讨论】:

      猜你喜欢
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 2015-10-06
      相关资源
      最近更新 更多