2016-10-12 1 views
0

for 루프 반복을 기반으로 counta 수식을 삽입하고 변경하려고합니다. 내가 직면하고있는 문제는 코드가 오류없이 실행 되더라도 아무 일도 일어나지 않는다는 것입니다. totalrow 변수는 일관되게 0입니다. 여기서 내가 어디로 잘못 가고 있는지 확실하지 않습니다. 모든 변수가 루프 외부에서 초기화되었습니다. CurrentColname은 문자열이고 countUsedCols는 길고 totalRows는 길다.for 루프 반복을 기반으로 셀 수식을 변경하십시오.

For i = 2 To countUsedCols 
    ActiveSheet.Cells(3, i).Select 
    currentColName = ActiveSheet.Cells(3, i).Value 
    If currentColName = "Valid From" Then 

     totalrow = ActiveWorkbook.Sheets("Customer_Facing_View").Range("AR1").Formula = "=COUNTA($" & i & ":$" & i & ")" 

     totalrow = ActiveWorkbook.Sheets("Customer_Facing_View").Range("AR1").Value 

답변

2

몇 가지.

X=Y=Z을 넣을 때 v는 y = z인지 여부에 따라 부울 값이됩니다.

그래서 당신은 쓸 때 : 해당 셀의 수식은 귀하가 제공 한 문자열로 동일하지 않기 때문에

totalrow = ActiveWorkbook.Sheets("Customer_Facing_View").Range("AR1").Formula = "=COUNTA($" & i & ":$" & i & ")" 

이 Totalrow가 false를 반환한다.

두 번째로 COUNT A가 열이 아닌 행으로 해석됩니다. i은 숫자가 아닌 문자입니다.

첫 번째 표현식에서 totalrow =을 제거하고 범위 참조를 변경하십시오.

ActiveWorkbook.Sheets("Customer_Facing_View").Range("AR1").Formula = "=COUNTA(" & Columns(i).Address &")" 
+0

처음에는 명확하지 않은 점 사과드립니다.하지만이 루프와 하위의 요점은 테이블의 행 수를 계산하는 것입니다. 그러나 "유효 원본"이 테이블의 중간에 있으므로 xldown을 사용하는 것은 옵션이 아닙니다. 논리는 루프가 유효 기간 열 수를 계산하고 그 열 수를 확인합니다. – Adit2789

+0

"유효 기간"이외의 다른 열은 공백없이 채워질 수 있습니다. – Adit2789

0

첫 번째 totalrow 문과 함께 행 수를 계산하려면 수식을 셀 AR1에 작성하고 싶습니다. 그 값을 다시 얻습니다 (두 번째 totalrow 문 사용). 하지만 스콧이 지적한대로 첫 번째 총합 계산서가 잘못되었다고 생각합니다. 변경해야합니다.

Counta 공식의 경우 원래 워크 시트 이름을 포함해야합니다. 그렇지 않으면 Customer_Facing_View 워크 시트의 열을 계산합니다.

관련 문제