【发布时间】:2017-05-11 17:01:45
【问题描述】:
我不知道如何最好地描述这一点,但我最好用图片来解释我的问题。
我有 2 个工作表:
在工作表数组中,有一定的句点与它们对应的“数组”相关联。
在Sheet1中,有一个字符串列表,格式为:dd/mm/yyyy hh:mm:ss AM/PM - # 按数字升序排列,然后按日期排列,最后按时间。
我的代码通过提取 Array 中的数据并将它们列在一个单元格中,在 Sheet1 中生成这些值。我使用的代码是。
Sub Filter()
Const Array_FirstRow As Integer = 2 'Indicates the first row (row 2) in Array sheet
Dim Array_RowIndex As Integer 'variable to loop through array values of col A
Dim Summary_PeriodMoment1 As String 'in worksheet Sheet 1
Array_RowIndex = Array_FirstRow
Array_LastRow = Array_RowIndex - 1
Summary_PeriodMoment1 = ""
For Array_RowIndex = Array_FirstRow To Array_LastRow
If Summary_PeriodMoment1 <> " " Then
Summary_PeriodMoment1 = Summary_PeriodMoment1 & ", " & Worksheets("Array").Cells(Array_RowIndex, Array_DateTime_Column).Value
End If
Next
Sheet1.Cells(1, 1).Value = Summary_PeriodMoment1
End Sub
这有点令人困惑,而且阅读起来过于复杂。有什么办法可以添加代码:
- 按# 对值进行排序/分组并按日期合并(以减少混乱)?喜欢吗?
- 每个值都有一个单独的单元格,再次按 # 分类(我想稍后使用其他代码将这些值绘制在透视图上,所以希望它采用友好的格式
基本上我想用 VBA 脚本重新格式化/转置一些数据。知道我应该使用哪些功能吗?谢谢!
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++ 更新:我有在 one 单元格中转置一串值所需的东西。我想知道这是否可以对多个单元格进行。我尝试使用此代码:
Sub TextToRows()
'Code for 1.2. section
Dim Arr As Variant
Dim Arr1 As Variant
Dim Arr2 As Variant
Dim InputRng As Range, InputRng2 As Range, InputRng3 As Range, OutputRng As Range, OutputRng1 As Range, OutputRng2 As Range
Set InputRng = Range("B1") 'Cell Containing all the text
Set InputRng1 = Range("B2")
Set InputRng2 = Range("B3")
Set OutputRng = Range("D1") 'First Cell of a column that you want the output there
Set OutputRng1 = Range("G1")
Set OutputRng2 = Range("J1")
Arr = Split(InputRng.Value, ",")
Arr1 = Split(InputRng.Value, ",")
Arr2 = Split(InputRng.Value, ",")
Set OutputRng = OutputRng.Resize(UBound(Arr) - LBound(Arr) + 1)
OutputRng.Value = Application.Transpose(Arr)
Set OutputRng1 = OutputRng1.Resize(UBound(Arr1) - LBound(Arr1) + 1)
OutputRng.Value = Application.Transpose(Arr1)
Set OutputRng2 = OutputRng2.Resize(UBound(Arr2) - LBound(Arr2) + 1)
OutputRng.Value = Application.Transpose(Arr2)
End Sub
【问题讨论】:
-
转置是一种方式,能不能不修改生成数据的代码更友好?
-
B1 有多少条记录?超过16000?
-
你试过什么?此外,您能否将数据样本复制/粘贴到帖子中,以便我们更轻松地重新创建您的问题并最终解决它?
-
是的,有一种方法可以添加代码。您可以使用拆分功能,然后进行一些排序以使事物以正确的顺序排列。要将其全部排序到一个单元格中,一种方法是创建一个包含所有适用时间的
#的用户定义对象,然后根据需要重新创建显示。 -
实现第一部分,然后玩弄问题的第二部分并向我们展示一些代码。因此,我们或许能够帮助您实现目标。