2016-12-23 2 views
0

매크로가 GETGUID()입니다. 해당 열 'A'에 값이있을 때마다 열 'B'에서 매크로를 호출하려고합니다. A 열이 비어 있으면 해당 열 B에 대해 GETGUID 매크로를 호출하면 안됩니다.다른 셀의 값을 기준으로 한 셀의 특정 매크로 호출

다음 코드를 시도했지만 작동하지 않습니다. 테스트를 위해 범위 A1 : A20을 사용하지만 범위는 어느 것이든 가능합니다. GETGUID() 매크로는 B 열에 수동으로 입력하면 정상적으로 작동하지만 A 열의 해당 셀에 값이있을 때마다이 매크로가 작동하기를 원합니다.

매크로 사용에 대한 지식이별로 좋지 않습니다. 내가 Worksheets(1).Range("A1:A20")에 의해 선언 된 각 셀을 통해 루프하는 간단한 매크로를 만든

Public Function GetGUID() As String 
    GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36) 
End Function 

Dim cell_to_test As Range, cells_changed As Range 

Set cells_changed = Target("A1:A20") 
Set cell_to_test = Range("B1:B20") 

If Not Intersect(cells_changed, cell_to_test) Is Nothing Then 
    Range("B1:B12") = GetGUID() 
End If 

답변

1

: 여기에 내가 노력하고 코드입니다. 값이있는 경우 (vbNullString 아님) 오른쪽의 열에는 GUID가 채워집니다.

Private RANGE_CELL As Range 

Public Function GetGUID() As String 
     GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36) 
    End Function 

Public Sub Populate_B() 
    For Each RANGE_CELL In Worksheets(1).Range("A1:A20") 
     If RANGE_CELL <> vbNullString Then 
      RANGE_CELL.Offset(, 1).Value = GetGUID 
     Else 
      '// Do nothing. 
     End If 
    Next RANGE_CELL 
End Sub 

도움이 필요하시면 언제든지 알려주세요.

+1

당신은 열 A가 워크 시트 페이지에 다음 매크로를 추가 할 수 있습니다 채워 때 GUID를 추가하고자하는 경우 : '개인 서브 Worksheet_Change (ByVal의 다른 이름으로 대상 범위) 다음 Target.Column = 1 만약의 경우 Target.Value <> vbNullString Then Target.Offset (, 1) .Value = GetGUID End If End Sub' – Nulled

+0

Thanks @ Nulled. 위 코드는 물론 위의 코드를 사용했지만 작동하지 않습니다. 그것은 매우 제한된 지식으로 인해 알 수없는 작은 것이어야합니다. 범위 RANGE_CELL 범위로 공용 함수 GetGUID() As String GetGUID = Mid $ (CreateObject ("Scriptlet.TypeLib").) GUID, 2, 36) 최종 기능 개인 서브 Worksheet_Change (ByVal의 대상 범위로서) 경우 Target.Column = 1이어서 경우 Target.Value <> 제 vbNull String이어서 Target.Offset (1) .Value = GetGUID 최종 최종면 Sub – shuru

+0

VBA 편집기를 열고 GUID가 필요한 워크 시트를 두 번 클릭하여 채우고 내 의견의 코드를 붙여 넣으십시오. 코드가 워크 시트 안에 있으면 VBA 편집기를 닫고 Excel의 시트로 이동하여 A 열에 값을 추가합니다. 그런 다음 매크로는 B 열의 셀에 GUID를 추가해야합니다. 작동하지 않는다면 수신 한 디버그 메시지를 보낼 수 있습니까? – Nulled

관련 문제