Условный ввод строки в ячейку в зависимости от ввода пользователя - PullRequest
1 голос
/ 16 декабря 2011

Это следует из предыдущего вопроса здесь , где я спросил, как разработать input box, который требовал ввода данных в определенном формате пользователем (например: Q4 2010)

Теперь мне нужно взять первые 2 символа пользовательского ввода (всегда Q1, Q2, Q3 или Q4) и изменить текст в другой ячейке в зависимости отисход.В частности, если пользователь вводит строку, начинающуюся с Q1 или Q3, мне нужно скопировать <insert text1> в ячейку в Sheet3, а если он вводит Q2 или Q4, он копирует <insert text2> в ту же ячейку.*

Я понятия не имею, как рассматривать только часть входных данных, поэтому любая помощь приветствуется:)

1 Ответ

3 голосов
/ 16 декабря 2011

Вы можете попробовать это, чтобы заполнить A1 листа с именем Sheet3 двумя строками

[ Обновлен согласно msgbox, запрашивая ввод пользователя в определенном формате для пуленепробиваемости с использованием регулярных выражений]

Option Explicit
Sub Rattle_and_hmmmm2()
    Dim strReply As String
    Dim strTitle As String
    Dim objRegex As Object
    Dim objRegMC As Object
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
        .ignorecase = True
        .Pattern = "^Q([1-4])\s20[10-20]{2}$"
        Do
            If strReply <> vbNullString Then strTitle = "Please retry"
            strReply = Application.InputBox("Enter period (format: Q4 2010) to update, or hit enter to escape", strTitle, "Q" & Int((Month(Now()) - 1) / 3) + 1 & " " & Year(Now()), , , , , 2)
            If strReply = "False" Then
                MsgBox "User hit cancel, exiting code", vbCritical
                Exit Sub
            End If
        Loop Until .test(strReply)
    Set objRegMC = .Execute(strReply)
    End With
    Select Case objRegMC(0).submatches(0)
    Case 2, 4
    Sheets("Sheet3").[a1] = "insert text2"
    Case 1, 3
    Sheets("Sheet3").[a1] = "insert text1"
    End Select
    Sheets("Sheet1").[b14].Value = UCase$(strReply)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...