我怎样才能编程将我的数据在Excel中的网格?

我有一组excel文件中的数据,例如:

RIH2329 SCC272 CRT041 WS13-14 WS13-16 RIH2602 VT001 CRT035 RIH2874 RIH2876 CRT067 RIH2744 RIH2750 RIH2368 RIH2374 RIH2378 RIH2376 RIH2373...etc 

我想把这个数据放到一个9×9的网格中。 喜欢这个:

 RIH2329 SCC272 CRT041 WS13-14 WS13-16 RIH2602 VT001 CRT035 RIH2874 RIH2876 CRT067 RIH2744 RIH2750 RIH2368 RIH2374 RIH2378 RIH2376 RIH2373...etc 

我有很多数据,所以不可能手工完成。 我已经尝试使用=offset来获取我想要的数据,但这是站不住脚的,因为我需要改变每一行代码。 有没有一种简单的方法来完成我想要的而不用编辑每一行?

用A1中的RIH2329 ,把它放在B1:

 =OFFSET($A$1, MOD(COLUMN(A:A)-1, 9)+(ROW(1:1)-1)*9, 0) 

向右填充J1,然后填写B1:J1至B9:J9。

在这里输入图像说明

你可以用这个VBAmacros代码实现。

 Sub makeDataGrid() Range("A1").Activate 'asumes data starts at this cel 'Put all data into memory down to the bottom assumes there are no blank cells in between data = Range(Selection, Selection.End(xlDown)).Value 'Delete column containing all data Range(Selection, Selection.End(xlDown)).Delete colOffset = 0 rowOffset = 0 For i = 1 To UBound(data) ActiveCell.Offset(rowOffset, colOffset).Value = data(i, 1) colOffset = colOffset + 1 If colOffset = 9 Then colOffset = 0 rowOffset = rowOffset + 1 End If Next i End Sub 

macros将它放入一个数组后,删除包含所有数据的列,然后创build网格。