Excel Vba:选择和趋势例程

时间:2015-09-22 12:50:08

标签: excel-vba vba excel

所以我有一张这样的桌子,假设Tidal Height是B1:

Tidal Time  Tidal Height
00:00:00    4.40
01:00:00    
02:00:00    
03:00:00    
04:00:00    
05:00:00    
06:00:00    2.00
07:00:00    2.50
08:00:00    3.00
09:00:00    3.50
10:00:00    4.00
11:00:00    4.50
12:00:00    
13:00:00    
14:00:00    
15:00:00    
16:00:00    
17:00:00    
18:00:00    2.10
19:00:00    2.56
20:00:00    3.02
21:00:00    3.48
22:00:00    3.94
23:00:00    4.40

所以我需要这样做:

第一步: 从B2中选择第一个被占用的单元,然后选择直到(并包括)下一个被占用的单元。然后运行以下代码:

RangeToFill.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Trend:=True

第二步: 取消选择,然后继续并在下一个空单元格之前选择单元格。选择直到(并包括)下一个被占用的单元格。然后运行上面的趋势代码。

我可以手动执行此操作,但我不确定如何自动执行此过程以考虑不同位置的更改数据集。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

Dim Bounds As Range
Set Bounds = Range("A1").CurrentRegion

Dim c As Range
Set c = Range("B2")

Do While c.Row < Bounds.Rows(Bounds.Rows.Count).Row
  If IsEmpty(c.Offset(1, 0).Value) Then
    Dim RangeToFill As Range
    Set RangeToFill = Application.Intersect(Range(c, c.End(xlDown)), Bounds)

    RangeToFill.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Trend:=True
    Set c = RangeToFill.Cells(RangeToFill.Cells.Count)
  Else
    Set c = c.End(xlDown)
  End If
Loop