2013-06-04 2 views
1

libre-office에서 매크로를 사용하여 셀의 문자열을 찾으려고합니다. 해당 셀에 해당 문자열이 포함되어 있으면 프로그램은 그 셀 아래로 이동해야합니다. 해당 셀의 내용을 잘라내어 다음 열로 붙여 넣은 다음 이전보다 한 행 아래로 내리고 그 내용을 잘라내어 다음 열 다음에 배치하십시오. 1 열에서 3까지 정렬 데이터

그래서 문자열, 스크립트, A2로 이동 해당 셀을 잘라 B1에 콘텐츠입니다 붙여 A3에 가서 그 내용을 잘라 C1에 사람들을 붙여 넣은 다음이 A4을 확인해야한다고 말했다 A1가 포함되어있는 경우.

희망적입니다. 나는 하위 절차/기능의 절차가 정의되지 않는 오류가 계속, 그러나

Sub Neuorganisieren 
name = "check" 
    If find(". Fr" ,A1,0)>1 then 
     Selection.Offset(1, 0).Select 
     cut 
     Selection.Offset(-1, 1).Select 
     paste 
     Selection.Offset(2, -1).Select 
     cut 
     Selection.Offset(-2, 2).Select 
     paste 
     MsgBox ("found it") 
    Else 
     MsgBox ("no") 
    End If 
End Sub 

: 내가 지금까지있어하는 것은 이것이다.

답변

1

이 시도 :

Sub Neuorganisieren() 
Name = "check" 
    If InStr(Range("A1").Value, ". Fr") > 0 Then 
     Selection.Offset(1, 0).Select 
     Selection.Cut 
     Selection.Offset(-1, 1).Select 
     Selection.Paste 
     Selection.Offset(2, -1).Select 
     Selection.Cut 
     Selection.Offset(-2, 2).Select 
     Selection.Paste 
     MsgBox ("found it") 
    Else 
     MsgBox ("no") 
    End If 
End Sub 
  1. InStr이는 값이 A1의 내용 어디서나 존재하는지 확인합니다. 그럴 경우, 나머지 if 문을 시작합니다.

  2. 스스로 잘라 내기 및 붙여 넣기를 할 수 없습니다. 그것을 적용 할 개체 (이 경우에는 선택 항목)가 있어야합니다. 그래서 우리는 단지 Cut 대신 Selection.Cut을 사용합니다.

나는 확실히 당신이 목표로하는지 뒤에 "비즈니스"논리를 이해하지 못했다는 그래서 난 그냥이 당신이하고자하는 일을 할 것인지 잘 모르겠어요 그래서 기존 코드를 수정 한 후 갔지만, 코드 자체가 작동합니다.

희망이 도움이됩니다.

압둘