2014-02-26 3 views
1

12 행의 데이터 (현재 22-33 행)로 데이터 제출 스프레드 시트를 설계하고 있습니다. 34 ~ 42 행은 텍스트로 채워집니다. 버튼에 할당 된 매크로를 사용하여 행 33과 동일한 형식으로 12 개 이상의 데이터 세트를 입력해야하는 경우 행 33 아래에 새 행 (행 34)을 추가하고 싶습니다. 그게 쉽지만, 34 행 아래에 또 다른 새로운 행 (지금 35 행)이 필요하다면, 그렇게하기 위해 유연한 코드가 필요합니다. 광산은 항상 데이터 입력 세트의 마지막 행 아래가 아닌 행 33 아래에 새 행을 추가합니다. 어떻게해야합니까? 나는 ... VBA에마지막 행 아래에 행 추가

감사합니다,

앤디 항상 데이터가있는 컬럼의 이름

답변

0

행의 텍스트 (34) (42)

만약에 텍스트 값 행 34의 셀이 변경되지 않으면 해당 셀을 검색하여 그 위에 행을 삽입 할 수 있습니다.

Dim someText As String 
someText = "Text value of row 34" 

Dim currentRange As Range 
Set currentRange = Selection 

With Range("A:A").find(someText) 'change the range if needed 
    .EntireRow.Insert 
    .Offset(-2).EntireRow.Copy 
    .Offset(-1).EntireRow.PasteSpecial xlPasteFormats 'change the paste type as needed 
End With 
Application.CutCopyMode = False 'get rid of the marching ants 
currentRange.Select 'select whatever was selected before 
'alternative: Range("A1").Select 
+0

감사합니다. 2tsai; 이것은 매력처럼 작동합니다! 이걸 실행하면 새 줄이 완전히 선택됩니다. 열 A의 셀만 선택하려면 어떻게해야합니까? – Reindeer

+0

매크로를 실행하기 전에 선택한 코드를 다시 선택하기 위해 코드를 편집했습니다. 다른 범위를 선택하려면 코드 블록의 마지막 행을 변경하십시오. – 2tsai

+0

아름다운! 빠른 대응에 감사드립니다. 그리고 놀라운 부분은 : 나는 심지어 어떻게 작동하는지 이해하기 시작합니다 :)! – Reindeer

0
lastrow = Cells(Rows.Count, "A").End(xlUp).Row + 1 

변경 "A"를 아주 새로운 해요.

당신의 lastrow 변수는 다음과 같이 사용할 수 있습니다 : 당신은 당신이이 상태 때문에이 돈의 대답은 아닌 것 같다

Range("A" & lastrow).Value = "blah"