하나의 Excel 시트에서 다른 시트로 데이터를 복사하려고하지만 붙여 넣기 대상이 변수 여야합니다.VBA-Excel에서 변수 위치에 데이터 붙여 넣기
본질적으로 내가하고 싶은 것은 열린 두 권의 시트입니다. 이미 시트 2를 채우는 데이터를 바탕으로
sCurrentAddress = Selection.Address(True, True, xlA1, True)
이 알고리즘은 깔끔하게 원하는 붙여 넣기 위치를 찾아 다음과 같이 이러한 좌표를 저장합니다 첫 번째 시트에서 좌표가이 같은 저장 일부 문자열이있을 것 :
01,239,284,274 : 내가하고 싶은 것을 그리고
sDestinationAddress = Selection.Address(True, True, xlA1, True)
는 다음과 같이 두 번째로 첫 번째 시트의 정보를 붙여이다 하지만 오류 1004가 나타납니다. 런타임 오류 : 범위 클래스의 Select 메서드가 실패했습니다.
지금, 내가 일하고 있어요 첫 번째 값은 A4 될 일이, 내가 "sDestinationAddress"을 통해 내 마우스를 가져 가면, 그것은 sDestinationAddress에 저장된 값이 매크로하지 않는 한 실패 '[exampleFile.xlsx]Sheet 1'!$A$4
것을 나에게 보여줍니다 이 같은 실제 값을 연결 :
내가 Selection.Copy에 대한 인수로 내 sDestinationAddress를 사용하려면 어떻게해야합니까 무엇'Selection.Copy (Worksheets(1).Range("A4"))
?
(I이 분명치 여전히 길고, 어제는 문자 그대로 미안 해요 내 처음 Visual Basic의보고.) 알고리즘에 대해
: 나는의 정보를 라벨 144 다른 헤더가 아래 6 행. 예를 들어, Inventory_S1_1 열의 데이터를 새 스프레드 시트로 이동하려고합니다. S = Diamond, 1 = Black, _1 = Player 1. 내 알고리즘이 아직 다루지 않은 헤더를 찾습니다. (여기서 Inventory_S1_1은 첫 번째 헤더가 아니며 ' 처리하지 않음), 머리글 아래의 열을 복사하고 플레이어 1의 Black Diamond에 해당하는 새 스프레드 시트에서 위치를 찾은 다음 붙여 넣습니다. 템플릿이 직접 작성 되었기 때문에 붙여 넣기 알고리즘이 제대로 작동하지만 잠재적으로 뒤죽박죽 된 데이터를 검색하므로 검색 알고리즘이 헤더를 찾지 못합니다.
문제는 원시 데이터가있는 시트로 되돌아갑니다. 내가 sCurrentAddress = Selection
을 설정 전화 위치를 통해 내 마우스를 올리면
내가 sDestinationAddress = 0
을 붙여 그리고 한 sCurrentAddress= Inventory_S1_2
내가 두 번째 헤더로 이동 한 후 다음 후 나는이 정확히 문제가있는 라인입니다 상당히 확신 것을 보여준다 :
Set rCurrentRange = .Find(What:=sCurrentAddress, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
은 내가
Application.Goto rCurrentRange, True ActiveCell.Select Selection.Offset(-1, 1).Select Set sCurrentAddress = Selection
그것은 내가 다음 헤더를 찾고 있어요이 라인의에 따릅니다. 정확한 좌표를 사용하려고하면이 .Find가 작동하는 것처럼 보였지만 이제는 복사 된 자료의 첫 번째 값인 0 (sDestinationAddress)의 첫 번째 인스턴스를 찾습니다.항상 0을 복사하고 있으므로 처음 0을 찾으면 절대 다음 헤더를 찾습니다.
범위 객체에 .Address 속성이 있지만이 경우 도움이되는지 알 수 없습니다.
이 작업을 수행 않지만, 지금 나는 "나의 장소"를 잃었다. 변수는 셀 값으로 대체 된 것으로 보이며 좌표는 없습니다. 다음 열을 Sheet1에서 복사하여 Sheet2의 다른 위치에 넣어야합니다. 어쩌면 주소 변수를 만들 수도 있습니다. – emmagras
다음 열은'rngSrc.Offset (0,1)' –
어떻게 그게 문제입니까? 한 셀의 내용을 다른 셀로 복사하려고합니까? –