您可以使用以下VBA代码将选择的一列数据按照TextBox5中的数量分成多列,并从每列的第二行开始写入,表头文本为"数据1","数据2"等。
Sub SplitDataIntoColumns()
Dim rngData As Range
Dim numRows As Integer
Dim numColumns As Integer
Dim i As Integer, j As Integer
Dim colCount As Integer
Dim rowCount As Integer
' 获取选择的一列数据
Set rngData = Selection
' 获取TextBox5中的数量
numColumns = Val(TextBox5.Value)
' 计算行数
numRows = rngData.Rows.Count
' 计算列数
colCount = Application.WorksheetFunction.Ceiling(numRows / numColumns, 1)
' 清空原有数据
rngData.Offset(1).Resize(numRows - 1).ClearContents
' 写入数据
rowCount = 1
For i = 1 To colCount
For j = 1 To numColumns
If rowCount <= numRows Then
rngData.Cells(rowCount + 1, i).Value = "数据" & j
rowCount = rowCount + 1
End If
Next j
Next i
End Sub
请将以上代码复制到您的VBA编辑器中,并将其与您的表格相关联。然后,在您的用户界面中,将所需的列数据选择并运行该宏。它将根据TextBox5中的数量将数据分割成多列,并从每列的第二行开始写入,表头文本为"数据1","数据2"等。
请注意,您需要将代码中的"TextBox5"替换为您实际使用的文本框控件的名称。此外,确保您的VBA编辑器中已启用"Microsoft Forms 2.0 Object Library"引用。
希望对您有所帮助!如果您有任何进一步的问题,请随时提问。