2014-06-13 2 views
0

VBA를 처음 사용하며이 문제에 집착하고 있습니다. I는 온도에 대한 큰 데이터를 가지고 범위의 데이터에 관한 VBA

A 
1. 21.40 
2. 21.45 
3. 21.38 
4. 22.89 
5. 23.27 
etc... 

는 I 열 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

원하는 결과물을 보여줄 수 있습니까? 밀도 B *와 열 계수 B를 열 B에 할당하려는 경우, 즉 한 열에 두 개의 값을 넣으시겠습니까? –

+0

'Temp = Range ("A1 : A1000") .Value : Temps는 Range이고, 값을 줄 수는 없으며, 당신은 towrite가 필요하다. set temp =' –

답변

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을 기반으로 한 이유입니다.

+0

고맙습니다. . 그것은 셀로 객체를 정의 할 필요가 있다는 것을 제외하면 잘 작동합니다. 다시 한번 감사드립니다. – user3739106

관련 문제