我是VBA的新手,我坚持这个问题。我有一个关于温度的大数据:
A
1. 21.40
2. 21.45
3. 21.38
4. 22.89
5. 23.27
etc...
我将数据放在A列中,对于每个温度,我想在B列中分配它们的密度和热系数值(相应于温度)。我试过这个:
Dim Temp As Range, Density As Double
Set Temp = Range(“A1:A1000″)
Temp = Range(“A1:A1000″).Value
If Temp = 21 Then
Density = 998.08
ElseIf Temp=22 Then
Density = 997.86
ElseIf…(I do until the required Temp)
End If
Range(“B1:B1000″).Value = Density
我收到了不匹配错误。你能帮我吗?
答案 0 :(得分:2)
有很多方法可以做到这一点,但我建议你将代码更改为:
Sub Temperature()
Dim Temp As Range
Dim Density As Double
Set Temp = ActiveSheet.Range("A1:A1000")
For Each cell In Temp
Select Case cell.Value
Case 20 To 21: Density = 998.08
Case 21 To 22: Density = 997.86
'...and so on with the cases
Case Else: Density = 0
End Select
cell.Offset(0, 1).Value = Density '<~~ Writes the density in column B
Next cell
End Sub
这将查看范围A1:A1000
的每个单元格中的每个值,然后确定关联值的密度应该是什么(基于代码中的输入)。它此后将此值写入列B
中具有相同行号的单元格,然后继续到下一个单元格。
我不是温度和密度的专家,但在我看来,你需要根据温度间隔分配密度。这就是我将Select Case
基于温度区间的原因。