2013-07-11 6 views
0
Sub Button53_Click() 

Dim rowsvalue As Integer 
Dim rowsnum As Integer 

rowsvalue = Sheet1.Range("C38").Value 
rowsnum = Math.Round(rowsvalue/20, 1) 

k = 0 

For Counter = 16 To 46 
    Worksheets("Single L Angle").Cells("F", Counter).Value = rowsnum * k 
    k = k + 1 
    Next Counter 
End Sub 
난 세포 "C38"의 값을 취 (20)을 나누는 VB 코드를 만들려고 노력하고이 문제를 파악하고 세포의 F16에 해당 값을 붙여 넣습니다 어차피

-> F36. 지금까지 모든 괜찮지 만, 그것은에 관해서 :오류 13 불일치 - 루프 셀 값에 대한

Worksheets("Single L Angle").Cells("F", Counter).Value = rowsnum * k 

나는 불일치 13 오류가 점점 계속.

+2

시도를 사용할 수 있습니다 그리고 당신은 확실히 '돈 볼 수 있습니다 k가 선언되지 않았으므로 활성화되었습니다. –

답변

0

당신은, 즉, 좋은 도움입니다 항상 모듈의 첫 번째 행으로 "명시 적 옵션"을 가지고

Worksheets("Single L Angle").Cells(Counter,6) = rowsnum * k 

또는

Worksheets("Single L Angle").range("F" & format(counter)).Value = rowsnum * k 
0
For Counter = 16 To 46 
    Worksheets("Single L Angle").Range("F" & Counter).Value = rowsnum * k 
    k = k + 1 
Next Counter 

더 좋습니까?

1

.Cells() 메서드는 행과 열을 정수로 사용합니다. "A2"와 같은 문자열을 전달할 수 없습니다. 셀을 액세스 할 때이 셀을 사용하려면 해당 셀의 행과 열 번호를 사용하십시오.

예컨대 : 셀을 선택 "A2"

Cells(1,2).Select 

그래서 귀하의 경우에는 당신이 원하는 :

Worksheets("Single L Angle").Cells(Counter,6).Value = rowsnum * k 

F는 6 편지이기 때문에. 이것을 사용하여 루프를 중첩하여 셀 블록을 반복 할 수 있습니다.

또는 MattHead93에서 설명한대로 Range() 메서드를 사용할 수 있습니다.