Excel VBA:将数据复制到具有值的最后一列

时间:2015-08-07 17:21:06

标签: excel vba excel-vba

电子表格在单元格中有多个值。

我尝试做的是获取在单元格中找到的值并将其粘贴到另一个工作表并复制属于该值的其他字段(列)。如何设置范围以便将其他字段(列)复制到具有值的最后一列?提前谢谢。

For iRowGetProdCode = 0 To UBound(sSplitProdCode)

    Sheets("Output").Cells(iRowCountOutput, 1).Value = sSplitProdCode(iRowGetProdCode)

    iRowCountOutput = iRowCountOutput + 1

Next iRowGetProdCode

2 个答案:

答案 0 :(得分:0)

这是一个如何在同一行中发现非空列的想法

也许你会发现它很有用并且可以根据你的需要进行操作:

Function LoopUntilLastColumn(ByVal Row As Integer)
Dim i As Integer
i = 1
Do While Cells(Row, i) <> ""
    ' do somthing
        MsgBox (" I AM ALIVE COLUMN!")
i = i + 1
Loop

    ' you can also use the return value of the function.
    LoopUntilLastColumn = i
End Function

答案 1 :(得分:0)

我不确定你问的是什么,但这是我最好的三个猜测。

1.。)将单个单元格中的分隔数据拆分为列

  • 没有VBA:使用&#34;文本到列&#34;功能(Excel功能区: 数据|数据工具)。
  • 使用VBA:使用拆分函数MSDNRelated Post),然后将数组值分配给目标单元格。或者解析你的字符串manually with a loop

2.。)查找连续范围的结束

3.。循环遍历列和行

  • 使用嵌套循环: For c = 1 to 5 For r = 1 to 20 Cells(r,c) = "Row = " & r & ", Column = " & C Next Next

编辑建议(我没有足够的声誉来直接评论或编辑)

这个问题措辞可能对StackOverflow来说太具体了。考虑重新措辞,以便在一般情况下理解问题,并且您的问题对其他人更有用。

此外,措辞有点令人困惑。例如,使用术语&#34;值&#34;似乎从引用分隔数据变为引用VBA中的单元格内容。同样,使用&#34;字段&#34;可能会令人困惑。或&#34;列&#34;描述数据是否实际上是分隔的文本,因此清楚数据的存在状态会有所帮助。

在我看来,您已经将其上的字符串解析为数组的分隔符,并且您正在循环遍历此数组以在行中写入数据。我仍然无法确定您关于设置范围的问题究竟如何。