2017-06-15 70 views
0

我正在查找能夠通過列A(時間)並創建一個新的行,其中每個整數都應該是一個Excel宏。在創建新行之後,需要爲該新行插入列D和E的值。該行也應該突出顯示。最後,所有突出顯示的行應該隱藏(這可以通過按單元格顏色過濾來完成)。Excel:創建新行並插入

我想提出的最大問題是何時插入新行,因爲它們之間的行數不總是相同的。我想過比較相鄰行中的單元格,但我不確定如何執行此操作。

下面是一張圖片來幫助解釋我需要什麼。 (減去隱藏的行)Image Example

+2

'如果INT(.cells(I, 「A」)。值2)<> INT(.cells第(i + 1, 「A」)。值2)然後' – Jeeped

+0

我完全用三次樣條完成了這個。太複雜的解決方案。嘗試使用'VLOOKUP()'和'FORECAST()'來做你想做的事。 – ja72

回答

0

這裏是你的「最大問題」的代碼....我不知道你想要的「插值」的部分是什麼數學:

Sub Insert_whole_Number_row() 
    C = 1 
    R = ActiveCell.Row 
    If Cells(R, C) = "" Then Exit Sub 
    Do Until Cells(R, C) = "" 
     If Int(Cells(R, C)) <> Int(Cells(R + 1, C)) Then 
      Rows(R + C).Insert 
      R = R + 1 
      Cells(R, C) = Int(Cells(R + 1, C)) 
      Range(Cells(R, C), Cells(R, C + 5)).Interior.ColorIndex = 6 
     End If 
     R = R + 1 
    Loop 
    MsgBox "Done...." 
End Sub 
+0

謝謝Mike!如果時間數據已經是整數,我添加了ElseIf以不創建新行。插值應該採用y = y1 +(x-x1)*((y2-y1)/ x2-x1))的形式。在第一篇文章的照片中,它顯示爲選定的單元格。 我嘗試使用Range.Formula和Range.FormulaR1C1來做到這一點。寫出公式時,我無法找到如何引用某個單元格。 – Spencer

1

我想這是你想要的。不是VBA的解決方案,而是一個Excel一個

pic

  1. 做一個表的整數值要使用(電池「E3」及以下)
  2. 發現最近數的行index=MATCH(E3,$B$3:$B$105)
  3. 獲取上一頁和下一頁tt1=INDEX($B$3:$B$105, $F3)t2=INDEX($B$3:$B$105, $F3+1)
  4. 獲取上一頁和下一頁x價值x1=INDEX($C$3:$C$105, $F3)t2=INDEX($C$3:$C$105, $F3+1)
  5. 內插xx=FORECAST(E3,I3:J3,G3:H3)