2016-09-27 40 views
-1

我想將C等級(帶壓力補償)轉換爲PPMv。用一系列值讀取表格,將其拉入另一個計算器表格,然後將計算值複製回第一個表格

我有兩張牀單。第一張紙是原始數據。我有另一個計算器工作表(我從互聯網上獲得)將C級轉換爲PPMv。我想將2種類型的數據(C級&壓力)複製到計算器,然後將計算的值複製回第一張。

代碼:

Sub CaculatePPM() 
    Dim DewPoint As Double 
    Dim Temp As Double 
    Dim PPMv As Double 
    Dim Iteration As Integer 

    Iteration = 0 
    Sheets("DewPoint").Select 

    Do Until Selection.Offset(Iteration, 0).Value = "" 
     Range("D7").Select 
     Selection.Offset(Iteration, 0).Select 
     DewPoint = Selection.Value 
     Range("F7").Select 
     Selection.Offset(Iteration, 0).Select 
     Temp = Selection.Value 

     Sheets("Calculator").Select 
     Range("D14").Select 
     Selection.Value = DewPoint 
     Range("D16").Select 
     Selection.Value = Temp 
     Range("B19").Select 
     PPMv = Selection.Value 

     Sheets("DewPoint").Select 
     Range("G7").Select 
     Selection.Offset(Iteration, 0).Select 
     Selection.Value = PPMv 

     Iteration = Iteration - 1 

    Loop 

End Sub 

回答

0

我認爲這是一個更好版本的代碼:

Sub CaculatePPM() 
    Dim Iteration As Integer 

    'Set iteration to the first row to be processed  
    Iteration = 7 

    'Loop while there is data to be processed 
    Do Until Sheets("DewPoint").Cells(Iteration, "D").Value = "" 
     'Copy data to Calculator sheet 
     Sheets("Calculator").Range("D14").Value = Sheets("DewPoint").Cells(Iteration, "D").Value 
     Sheets("Calculator").Range("D16").Value = Sheets("DewPoint").Cells(Iteration, "F").Value 

     'This next statement is probably not necessary, but I have included 
     'it just in case Excel is set to Manual Calculation 
     Sheets("Calculator").Calculate 

     'Copy results back to DewPoint sheet 
     Sheets("DewPoint").Cells(Iteration, "G").Value = Sheets("Calculator").Range("B19").Value 

     'This originally said "Iteration = Iteration - 1" 
     'Change it back if you are trying to process rows starting from 7 and working UPWARDS 
     Iteration = Iteration + 1 
    Loop 

End Sub 
相關問題