2016-06-09 4 views
0

저는 VBA에 상당히 익숙하며 다소 간단한 문제가 있습니다. 누군가가 도와주세요 수 :마지막 행, 범위, vba 선택하기

Range("W72").Select 
    Selection.NumberFormat = "General" 
    ActiveCell.FormulaR1C1 = "Null_value" 
    Range("X72").Select 
    Selection.NumberFormat = "General" 
    ActiveCell.FormulaR1C1 = "=R[-2]C[1]-SUM(R[-2]C[-8]:R[-2]C[-6])" 

:

을 대신 특정 셀을 선택, 나는 내 VBA 매크로 다음, 관심있는 칼럼의 아래로 내려 가서 건너 뛰고 아래 두 개의 셀이 원하는 위에서 볼 수 있듯이 위의 코드는 특정 셀 W72 및 X72를 나타냅니다. 현재이 열의 마지막 항목은 W70 및 X70에 있지만 다음 달에는 W72 및 X72가 위의 작업을 수행하기에 적합한 위치가 아니기 때문에 내 데이터 집합이 커집니다. 어떻게하면 VBA 코드가 자동으로 W (n) : X (n)의 맨 아래로 가고, 한 행을 건너 뜁니다. 그리고 W (n + 2)에서 X (n + 2)는 위의 코드를 수행합니다. .

또한 위의 수식 (ActiveCell.FormulaR1C1)은 특정 셀을 가리키고 있습니다. 제 70 행 왼쪽에 몇 개의 열이 있지만 행의 참조가 변경되므로 동일한 문제가 있습니다. 달. 나는 그 칼럼의 마지막 행을 수식으로 갖도록 내 VBA를 가져와야한다. 열은 P, Q, R이다.

도움을 주셔서 감사합니다.

업데이트 : 내 동일한 업무 프로젝트의 일부로서, 누구든지이 문제를 도울 수 있다면 크게 감사드립니다. 당신을 감사합니다

안녕 모두,

을 나는 현재 변경하는 변수에 대한 입력 상자가 everymonth :

r_mo = Application.InputBox (프롬프트 = "YYYYMM (예 :로보고 월 입력 : 이 항목의 오류로 인해 결과에 오류가 발생합니다. ")

이렇게하면 수동으로 입력해야하는 입력 상자가 나타납니다. 그러나이 프로세스를 자동화하고 입력 상자. vba에 자동으로 오늘 날짜를 생성하는 함수가 없습니까?

지금부터, 또는 내가 원하는 시스템 기능은 연도를 4 자리 숫자로 그리고 2 자리 숫자로 추출하는 것입니다. 우리가 decemeber 2016

하위 asasdas을() 인 경우

그래서 예를 들어,

"이제 기능" r_mo = YYYYMM '자동

최종 하위를 "지금 기능"에서 업데이트

감사의 말을 전하고 감사드립니다.

다음과 같은 코드로 VBA에서 (내 예제 ​​W) 지정된 열의 마지막 인구 행을 얻을 수 있습니다
+2

데이브는 아래에서 좋은 대답을주었습니다. 그러나 VBA를 대신 할 수있는 팁이 있습니다. 코드가있는 셀을 선택할 필요가 거의 없습니다. "Range (...), Select", "Selection.NumberFormat = ..."대신 "Range (...). NumberFormat = ..."이라고 간단하게 말할 수 있습니다. "선택"을 사용하여 매크로 레코더의 출력을 보는 방법을 배우게됩니다. 이것이 바로 모든 사람들이 배울 수있는 방법입니다.하지만 다음으로 배우는 것은 코드를 직접 작성하는 경우 선택하지 않고 셀에서 직접 관련 작업을 수행 할 수 있다는 것입니다. 행운을 빕니다! –

답변

1

: 당신은 당신은 당신이 셀이 lastRow 2를 추가하는 경우,

Dim ws As Worksheet : Set ws = ThisWorkbook.Worksheets("MySheetNameHere")  
lastRow = ws.Cells(ws.Rows.Count, "W").End(xlUp).Row 

당연히 찾고.

+0

감사합니다. 매우 도움이됩니다. –

0

난 당신이 새로운 질문을해야 할거야 더 자세한 대답을 원하는 경우

Sub asdf() 

    Range("w1048576").End(xlUp).Offset(2, 0).Select 'gets the last row 
    With Selection 
     .NumberFormat = "General" 
     .FormulaR1C1 = "Null_value" 
    End With 

    ActiveCell.Offset(, 1).Select 

    With Selection 
     .NumberFormat = "General" 
     .FormulaR1C1 = "=R[-2]C[1]-SUM(R[-2]C[-8]:R[-2]C[-6])" 
    End With 

End Sub 
+0

매우 도움 주셔서 감사합니다! –

0

처럼 할 수 있지만, 두 번째 질문에 대해이 작업을 시도 할 것입니다.

Sub Now() 
    Dim myDate As String 
    myDate = Date 
    myDate = Format(myDate, "yyyymm") 
    Debug.Print myDate '201606 output for June 10th 2016 
End Sub