首页 > 解决方案 > 将充满数据的单个单元格复制到一列?

问题描述

我有一个充满数据的单元格,之前通过创建一个数组并将其加入该单元格中。现在稍后在程序中,当被问到时,我想将那个单元格中的先前数组数据全部粘贴到另一张纸上的一列中。

我尝试使用 range 函数复制单元格并粘贴,并且只使用我想要使用的列的第一个单元格。

ws3.Activate
FinalRow2 = ws3.Range("E200").End(xlUp).Row
c = 21
a = 0

While a < VehCount

    VIN2 = VehArray(a)

    For b = 2 To FinalRow2
        ws3.Activate
            If Cells(b, 5) = VIN2 Then     'If VIN matches database
            Cells(b, 7).Copy               'Copy cell with array data
            ws4.Activate                   'Fault tab
            Cells(6, c).Paste              'Paste down column c     
            c = c + 9                      'increment c     
        End If
        ActiveCell.Offset(1, 0).Activate        'move down while scanning 
    Next b

    a = a + 1               'counter for VIN in VehArray

Wend

Cells(6, c).Paste 是我尝试过的一种选择,我也尝试过 Range(TOP Cell, BOTTOM Cell).PasteSpecial,但结果错误。

我要传输的单元格中的内容是 840 字节的数据,并且它们是间隔的。我希望每个字节都粘贴在另一张表的 c 列下方的自己的单元格中。

提到的包含字节数组的单元格看起来像 17 5 5b 35 。.... 等等。一个单元格中有 840 个字节。它不再在数组中,因为我使用的是不同的子。

标签: arraysexcelvbapaste

解决方案


例子:

Dim arr

arr = Split(ws3.Cells(1, 1).Value, " ")

ws4.Cells(1, 1).Resize(UBound(arr) + 1, 1).Value = Application.Transpose(arr)

请注意,您不应依赖激活工作表来引用工作表上的单元格 - 您可以直接使用工作表来限定您的Cells/Range调用


推荐阅读