1行单行,我想将其复制成多行,每行10个单元格

时间:2014-06-06 17:15:55

标签: excel vba excel-vba

在Excel中

我有一长串导入到excel中的值。

为简单起见,假设我有1行100个单元格,值为1到100。 我想知道是否有一种简单的方法来复制它,以便它会产生一个表10x10,第1行为1到10,第2行:11到20等等

我尝试使用偏移功能,但不成功。

5 个答案:

答案 0 :(得分:2)

您可以使用vba(假设100行的行是第20行)

for i = 1 to 10
  for j = 1 to 10
    cells(i, j) = cells(20, j + 10 * (i - 1))
  next j
next i

答案 1 :(得分:0)

如果您需要准确的帮助,请提供您已做过的示例,以便我们提供帮助,而不是期望我们为您编写代码。不过,根据您的要求,这是一个相当简单的片段:

Dim i As Integer
Sheets(1).Activate
For i = 1 To 10
    Range(Cells(1, (i * 10) - 9), Cells(1, (i * 10))).Copy
    Sheets(2).Cells(i, 1).PasteSpecial
Next i

从第一张纸的最上面一行复制,并在第二张纸上将其作为10x10矩阵。

答案 2 :(得分:0)

在没有宏的情况下处理此问题的一种简单方法:

  1. 在列和行标题中创建偏移值
  2. 合并行和列的偏移值以获得总偏移量。
  3. 使用此值可使用= OFFSET(...
  4. 检索正确的单元格

    或者,请参阅此文章以使用VBA宏执行此操作。 https://superuser.com/questions/700104/transpose-data-in-columns-to-rows-downwards

答案 3 :(得分:0)

没有VBA:

如果第一行中有数据,则选择一个单元格,比如单元格 B3 并输入以下公式:

=INDEX($1:$1,1,(10*ROWS($1:1)-10)+(COLUMNS($A:A)))

然后将 B3 B4 复制到 B11

然后通过 B11 向下复制 B3

这是一个例子::

table

答案 4 :(得分:0)

VBA和非VBA解决方案都可以在其他答案中显示。一个更简单的非VBA公式(不需要第1行中的值)是:

=(ROW()-1)*10+COLUMN()

假设您的数据以A1开头。如果您的起始单元格是D4,那么您也可以执行以下操作:

=(ROW()-ROW($D$4))*10+COLUMN()-COLUMN($D$4)+1