2013-03-15 2 views
0

내 매크로 완료에 문제가 있습니다. COUNTIF 함수를 사용하고 B2의 데이터에 대해 전체 A 열 (A : A - 제외 없음)을 확인합니다. 나는 B 열의 마지막 값까지 C 열에서 자동 완성하고 싶다 - 바로 아래 그림에 표시 같은 :특정 열의 마지막 행이 채워질 때까지 Countif

enter image description here

사람이 내 코드에 추가해야하는지 저를 도울 수있는 것은 만들기 이 autofill 가능 ??

Dim LastRowColumnB as Long 
LastRowColumnB = Activesheet.Cells(Activesheet.Rows.Count, "B").End(xlUp).Row 

을하고, 그 다음에 그 값을 사용하도록 자동 완성 수정 :

Sub Countif() 

Range("C2").Select 
ActiveCell.FormulaR1C1 = "=COUNTIF(C[-2],RC[-1])" 
Selection.AutoFill Destination:=Range("C2:C10"), Type:=xlFillDefault 
Range("C2:C10").Select 

End Sub 
+1

또한 C2 화학식하고 더블 클릭 채우기 핸들 (오른쪽 아래를 입력하여이를 달성 할 세포의 코너). – SomeSillyName

+0

셀 C1에서'= COUNTIF (A : A, B1)'을 입력 한 다음 채우기 핸들을 두 번 클릭하십시오 (SomeSillyName의 조언에 따라). 그것은 가장 간단한 방법입니다. –

답변

1

VBA를 사용하여 달성하고자하는 경우 아래 코드를 시도하십시오. 다만, 매크로를 실행하고 컬럼 B.의 값 uptil 열 C를 채울 WUD

Sub sample() 

Dim LastRowColumnB As Long 
LastRowColumnB = Range("B65000").End(xlUp).Row 

For i = 2 To LastRowColumnB 
    Cells(i, 3) = Application.CountIf(Range("A:A"), Cells(i, 2)) 
Next 
End Sub 
+0

@ALL - 아래 귀하의 모든 게시물에 감사드립니다. 모든 코드는 작동하지만 user2063626이 올린 코드는 가장 빠른 방법이자 가장 쉬운 방법 인 것 같습니다. countif 수식을 값으로 대체합니다. – mgunia

+0

도움이되기를 바랍니다 !!! :-) –

0

당신은 너무 같은 열의 마지막 행을 얻을 수 있습니다.

Selection.AutoFill Destination:=Range("C2:C" & LastRowColumnB), Type:=xlFillDefault 
0
' COUNTIF(range,criteria) 
' {0} will be replaced with range address 
' {1} with criteria 
Private Const COUNTIF_TEMPLATE As String = "=COUNTIF({0},{1})" 
Private Const FIRST_DATA_ROW As Integer = 2 
Private Const TARGET_COLUMN As Byte = 3 

Public Sub InsertFormulaCountIf() 
    ' replace ActiveSheet with your target sheet if necessary 
    With ActiveSheet 
     Dim lastRowColumnA As Long 
     Dim lastRowColumnB As Long 

     lastRowColumnA = .Range("A" & .Rows.Count).End(xlUp).Row 
     lastRowColumnB = .Range("B" & .Rows.Count).End(xlUp).Row 

     Dim formulaText As String 
     Dim targetRangeAddress As String 
     targetRangeAddress = "A" & FIRST_DATA_ROW & ":A" & lastRowColumnA ' e.g. A2:A500 
     formulaText = Replace(COUNTIF_TEMPLATE, "{0}", targetRangeAddress) 

     Dim rowIndex As Long 
     For rowIndex = FIRST_DATA_ROW To lastRowColumnB 
      .Cells(rowIndex, TARGET_COLUMN).Formula = Replace(formulaText, "{1}", "B" & rowIndex) 
     Next rowIndex 
    End With 

End Sub 
관련 문제