使用“文本到列”并根据选定范围制作图表

使用“文本到列”并根据选定范围制作图表

我首先要尝试做的是,我有一个包含大量数据的 CSV 文件。

第一列 A 包含日期和时间,以空格分隔,例如 03/11/2017 12:55:34。

我想选择两个日期之间的单元格,例如03/11/2017 12:55:3403/11/2017 15:55:34,然后使用文本到列分隔选定范围的日期和时间,最后绘制分隔时间及其对应值的图形。

代码无需进行文本到列的转换即可正常运行。但我不知道在选择范围后如何进行文本到列的转换。

在此我附上了代码。

 Function getData()


Dim findrow As Long, findrow2 As Long
Dim dataTable As Range

findrow = Range("A:B").Find("3/13/2017 15:49:57.108", Range("A1")).Row
findrow2 = Range("A:B").Find("3/13/2017 16:04:57.098", Range("A" & findrow)).Row
Set dataTable = Range("A" & findrow + 1 & ":B" & findrow2 - 1)
Set getData = dataTable
End Function

Sub SelectBetween()
Dim rng As Range
Dim cht As Object

'Your data range for the chart
 Set rng = getData()
 rng.Select

'Create a chart
 Set cht = ActiveSheet.Shapes.AddChart2

 'Give chart some data
  cht.Chart.SetSourceData Source:=rng

 'Determine the chart type
  cht.Chart.ChartType = xlLine

  cht.Chart.ChartTitle.Text = Cells(1, 1).Value



  cht.Chart.SetElement (msoElementLegendBottom)

  cht.Chart.SeriesCollection(1).Name = "=""CPU Processor Time"""

   cht.Chart.Axes(xlValue).MinimumScale = 0
   cht.Chart.Axes(xlValue).MaximumScale = 100


 End Sub

答案1

非 VBA 解决方案可能适合您的绘图需求。您可能希望在数据副本上进行测试。

  1. 过滤日期/时间信息。在我的示例文件中,我根据我的范围将大约 13,000 个温度读数过滤为 387 个值以进行绘制。

过滤器示例

  1. 将日期/时间信息的格式更改为仅显示时间。突出显示单元格,然后从“主页”选项卡上的数字格式下拉菜单中选择“时间”。

数字格式

  1. 您可以绘制结果列及其相关数据的图表。

示例数据和图表

数字格式更改为仅显示时间之前的日期/时间数据:

变更前

相关内容