0
ユーザーがExcelブックにテキストファイルをインポートするExcelブックがあります。そこから計算が自動的に完了するようにします。私は最初から現在のデータを減算する計算に取り組んでいます。青い輪郭のボックスが現在のデータである画像を参照してください(現在のデータの量は動的ですが、ユーザーがインポートするテキストファイルの数によって異なります)。だから私は赤の列から青の列を引いたがっています。 範囲として定義された2つの列を減算するVBA
そして計算の値を "Calculations1"という別のシートに印刷したいのですが、今のところ、値がどこにある列でコードを実行して#NAMEを印刷するのでしょうか?下の画像のようになります。ここで
私のコード
Sub Calculations1()
Dim LastCol As Integer
Dim LastRow As Integer
Dim i As Integer
Dim A As Integer
Dim B As Integer
Dim hiddenws As Worksheet
Dim calcws As Worksheet
Dim iRng As Range
Dim cel As Range
Dim Rng1 As Range
Dim Rng2 As Range
Dim Rng3 As Range
Dim Rng4 As Range
Dim Rng5 As Range
Dim Rng6 As Range
Dim NewRng1 As Range
Dim NewRng2 As Range
A = Worksheets("Information Sheet").Range("E12").Value
B = Worksheets("Hidden").Range("B2").Value
Set calcws = Worksheets("Calculations1")
Set hiddenws = Worksheets("Hidden 2")
Set iRng = hiddenws.Range(hiddenws.Cells(1, 1), hiddenws.Cells(1, hiddenws.Cells(1, Columns.Count).End(xlToLeft).Column))
For i = 1 To B
If i <> B Then
For Each cel In iRng
If cel.Value = "A0_ " & i Then
With hiddenws
Set Rng1 = cel.EntireColumn.Find(What:="", LookIn:=xlValues, lookat:=xlPart)
Debug.Print Rng1.FormulaR1C1
Set Rng2 = hiddenws.Cells(Rng1.Row - 1, Rng1.Column)
Debug.Print Rng2.FormulaR1C1
Set Rng3 = Cells(cel.Row + 1, cel.Column)
Debug.Print Rng3.FormulaR1C1
End With
End If
If cel.Value = "A0_ " & A Then
With hiddenws
Set Rng4 = cel.EntireColumn.Find(What:="", LookIn:=xlValues, lookat:=xlPart)
Debug.Print Rng4.FormulaR1C1
Set Rng5 = hiddenws.Cells(Rng4.Row - 1, Rng4.Column)
Debug.Print Rng5.FormulaR1C1
Set Rng6 = Cells(cel.Row + 1, cel.Column)
Debug.Print Rng6.FormulaR1C1
End With
End If
Next cel
With hiddenws
Set NewRng1 = .Range(Rng3.Address & ":" & Rng2.Address)
Debug.Print NewRng1.Address
Set NewRng2 = .Range(Rng6.Address & ":" & Rng5.Address)
Debug.Print NewRng2.Address
End With
With calcws
Sheets("Calculations1").Activate
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
If LastCol > 1 Then
LastCol = LastCol + 1
End If
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(1, LastCol) = "Incre_Disp_A_" & i
Cells(1, LastCol + 1) = "Cumul_Disp_A_" & i
End With
With calcws
Set Rng7 = Cells(2, LastCol)
Debug.Print Rng7.Address
Set Rng8 = Cells(LastRow, LastCol)
Debug.Print Rng8.Address
Set NewRng3 = .Range(Rng7.Address & ":" & Rng8.Address)
Debug.Print NewRng3.Address
NewRng3.Formula = "=NewRng1 - NewRng2"
End With
End If
Next i
End Sub
はCalculations1用紙に印刷する実際の値を取得する方法の任意のアイデアですか?すべてのヒント/助けをいただければ幸いです。前もって感謝します!
する必要があり、それは読み、コードがはるかに容易になります。 – wizlog