일요일, 18 12 월 2022
  2 답글
  5K 방문
0
투표
취소
셀에서 동일한 행의 다른 열로 데이터를 복사하기 위해 VBA를 복사하고 열 F의 셀을 변경하고 값을 열 E에 저장할 수 있도록 변경했지만 아무 일도 일어나지 않습니다. 누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? 또한 변경할 때 열 G에 날짜 스탬프를 배치하고 싶습니다.

I열의 셀을 변경하여 H열에 저장하고 J열에서 변경되는 날짜 스탬프를 저장할 때도 동일한 작업을 수행할 수 있기를 바랐습니다.

어떤 도움이라도 크게 감사할 것입니다.


범위로 Dim xRg
희미한 xChangeRg 범위
Dim xDependRg를 범위로
Dim xDic을 새 사전으로
개인 하위 Worksheet_Change (범위로 ByVal 대상)
흐릿한 I As Long
xCell을 범위로 흐리게 처리
Dim xDCell As 범위
Dim xHeader를 문자열로
Dim xCommText를 문자열로
오류에 대한 다음 재개
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "이전 값:"
x = xDic.키
I = 0 UBound(xDic.Keys)
xCell = 범위(xDic.Keys(I)) 설정
xDCell = Cells(xCell.Row, 5) 설정
xDCell.값 = ""
xDCell.Value = xDic.Items(I)
다음 보기
Application.EnableEvents = True
Application.ScreenUpdating = True
최종 하위
Private Sub Worksheet_SelectionChange(ByVal 대상 범위)
Dim I, J 길이
범위가 희미한 xRgArea
오류 시 GoTo Label1
Target.Count > 1이면 Sub 종료
Application.EnableEvents = False
xDependRg 설정 = Target.Dependents
xDependRg가 아무것도 아니면 GoTo Label1
그렇지 않은 경우 xDependRg가 아무것도 아닌 경우
xDependRg = Intersect(xDependRg, Range("F:F")) 설정
END IF
라벨1:
Set xRg = Intersect(Target, Range("F:F"))
If (Not xRg Is Nothing) 그리고 (Not xDependRg Is Nothing) Then
xChangeRg = Union(xRg, xDependRg) 설정
ElseIf(xRg가 없음) 및 (xDependRg가 없음이 아님) Then
xChangeRg = xDependRg 설정
ElseIf(xRg가 아님) 및 (xDependRg가 없음) Then
xChangeRg = xRg 설정
다른
Application.EnableEvents = True
서브 종료
END IF
xDic.RemoveAll
I = 1의 경우 xChangeRg.Areas.Count로
xRgArea = xChangeRg.Areas(I) 설정
J = 1의 경우 xRgArea.Count까지
xDic.xRgArea(J).주소, xRgArea(J).Formula 추가
다음 보기
다음 보기
xChangeRg = 없음으로 설정
xRg = 없음 설정
xDependRg = 없음 설정
Application.EnableEvents = True
최종 하위
1 년 전
·
#3309
0
투표
취소
UPDATE

VBA가 작동 중입니다! 아래 코드를 참조하십시오. 열 I의 셀을 변경할 때 열 H에 ​​값을 저장하도록 수정하는 데 도움이 필요합니다.


범위로 Dim xRg
희미한 xChangeRg 범위
Dim xDependRg를 범위로
Dim xDic을 새 사전으로
개인 하위 Worksheet_Change (범위로 ByVal 대상)
흐릿한 I As Long
xCell을 범위로 흐리게 처리
Dim xDCell As 범위
Dim xHeader를 문자열로
Dim xCommText를 문자열로
오류에 대한 다음 재개
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "이전 값:"
x = xDic.키
I = 0 UBound(xDic.Keys)
xCell = 범위(xDic.Keys(I)) 설정
xDCell = Cells(xCell.Row, 5) 설정
xDCell.값 = ""
xDCell.Value = xDic.Items(I)
다음 보기

If Target.Column = 6 Then
Application.EnableEvents = False
Cells(Target.Row, 7).Value = 날짜
Application.EnableEvents = True
END IF

If Target.Column = 9 Then
Application.EnableEvents = False
Cells(Target.Row, 10).Value = 날짜
Application.EnableEvents = True
END IF
Application.EnableEvents = True
최종 하위
Private Sub Worksheet_SelectionChange(ByVal 대상 범위)
Dim I, J 길이
범위가 희미한 xRgArea
오류 시 GoTo Label1
Target.Count > 1이면 Sub 종료
Application.EnableEvents = False
xDependRg 설정 = Target.Dependents
xDependRg가 아무것도 아니면 GoTo Label1
그렇지 않은 경우 xDependRg가 아무것도 아닌 경우
xDependRg = Intersect(xDependRg, Range("F:F")) 설정
END IF
라벨1:
Set xRg = Intersect(Target, Range("F:F"))
If (Not xRg Is Nothing) 그리고 (Not xDependRg Is Nothing) Then
xChangeRg = Union(xRg, xDependRg) 설정
ElseIf(xRg가 없음) 및 (xDependRg가 없음이 아님) Then
xChangeRg = xDependRg 설정
ElseIf(xRg가 아님) 및 (xDependRg가 없음) Then
xChangeRg = xRg 설정
다른
Application.EnableEvents = True
서브 종료
END IF
xDic.RemoveAll
I = 1의 경우 xChangeRg.Areas.Count로
xRgArea = xChangeRg.Areas(I) 설정
J = 1의 경우 xRgArea.Count까지
xDic.xRgArea(J).주소, xRgArea(J).Formula 추가
다음 보기
다음 보기
xChangeRg = 없음으로 설정
xRg = 없음 설정
xDependRg = 없음 설정

Application.EnableEvents = True
최종 하위
1 년 전
·
#3310
0
투표
취소
명확히 하기 위해, 이것은 이미 하고 있는 일에 추가될 것입니다. F열과 I열 모두에서 변경 사항을 추적할 수 있기를 바랍니다. 혼란을 드려 죄송합니다.
  • 페이지 :
  • 1
이 게시물에 대한 답변이 없습니다.