我正在嘗試創建一個動態電子表格(模板),它將用於頻繁獲取數據。在這個數據集中,我必須使用斜率/截距值來校正提取的數據。但是,如果數據爲0或無效,我想不進行任何計算。這也可以通過在不同的列中的給定值referrenced,讓說Sheet 1中列H,具有10VBA遍歷列並應用公式(如果匹配)(或不匹配)
一個值K細胞在表「標籤」包含斜率&截距值,柱的「G 「工作表1」包含從服務器提取的數據。爲了簡單起見,讓它們都具有10.0作爲值。但是,G列中的數據可能因工藝條件而異。
目前我經歷的列數據,一旦匹配,這將在一定範圍內應用乘法或除原有的值,例如:當新的數據
' Declare vars
Dim FirstRow As Integer
Dim LastRow As Integer
Dim Number As Integer
Dim fndStr As String
Dim sht As Worksheet
' Init vars
Set sht = ThisWorkbook.Worksheets("Sheet1")
LineText = ""
Number = 0
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
' Loop through colums till fndStr is found
Do While Not fndStr = "lastWord"
fndStr = Sheets("Sheet1").Range("A1").Offset(0, Number)
Select Case fndStr
Case Var1:
Sheets("Tags").Range("K7").Copy
Sheets("Sheet1").Range("G" & FirstRow & ":G" & LastRow).PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
Sheets("Tags").Range("K6").Copy
Sheets("Sheet1").Range("G" & FirstRow & ":G" & LastRow).PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd
Number = Number + 1
Case "lastWord": Exit Do
Case Else: Number = Number + 1
End Select
Loop
一些附加信息,被拖拽時,之前的或已經存在的數據將不會被重新計算,因爲這些是FirstRow和LastRow變量,意味着數據被附加到其中。
在此先感謝!
你似乎錯過了一個'Select Case'?除此之外,你的問題究竟是什麼?如何檢查單元格內容是否爲'0'或'null''? – arcadeprecinct
感謝您注意到丟失的選擇語句。我的問題是,當我瀏覽該列中的數據時,如何避免計算單元格或單元格區域爲「0」或「空」時的計算,而不會損失(顯着)的處理速度? – Vanadium
對於單個單元格,只需使用'If thatcell.Value <> 0 and thatcell.Value <>「Null」Then ...'。對於一個範圍,我會事先用0替換''Null''並使用'Application.WorksheetFunction.Sum'(檢查總和是否大於0) – arcadeprecinct