은 아주 간단하게, 무엇인가 : 당신이하고있는 경우
If Range("L58") = "Sigma Network" And Range("M58") = "" Then
Range("M58").Value = InputBox("Please enter cable length ", "Input value!", 0)
End If
당신 물론 것은
등 0 값 또는 빈 문자열을 입력에서 사용자를 방지하기 위해 추가 로직이 필요 이것에 세포, 예를 들면, 50 가지 쌍 (예를 들어 L58 L107 및 M58 예 M107 행)이 사용할 수있는 기본 루프 구조이다
Dim cl as Range
For Each cl in Range("L58:L107")
If cl.Value = "Sigma Network" and cl.Offset(0,1).Value = "" Then
cl.Offset(0,1).Value = GetValue("Please enter cable length ", "Input value!", 0)
End If
Next
루프를 추가로 발견 될 수있다 d (예 : "시그마 네트워크"만 확인하는 것이 아닌 경우 또는 다른 조건에 따라 입력 상자에 다른 메시지 텍스트가 필요한 경우 등)
사용자 정의 GetValue
기능은 InputBox
프롬프트를 호출하고 사용자로부터 0 값 입력을 방지하도록 구성됩니다. 다른 유형의 데이터 입력을 방지하려면 추가 로직이 필요할 수 있습니다.
Function GetValue(msg as String, _
Optional title as String = "", _
Optional default as Double = 0)
'Function that calls the InputBox method
Dim ret
Do Until ret <> 0
ret = InputBox(msg, title, default)
Loop
GetValue = ret
End Function
* 누구나 내가 매크로에서 누락 된 부분을 알고 있습니까? 나는 아주 오래 되었기 때문에 전체 스크립트를 게시하지 않을 것입니다 ... * ** << **이 두 문장은 서로 어긋나는 것 같습니다. 여기에 아무도 당신의 마음을 읽을 수는 없습니다 ... –
'MsgBox' 대신'InputBox'를 사용하고 리턴 값을'Range ("M58")'에 할당하려고합니다. 그러나 그것은 단지 추측입니다. –
정확히 동일한 스크립트이지만 다른 셀입니다. 그래서 L55, L56, L57 등등. 나는 똑같은 50 개를 볼 필요가 있다고 생각하지 않았다. – Sherri