|
▼Blue さん:
ご回答ありがとうございます。
試してみましたが動作しません。
ひとつきになるのですが
> ' セルの数が1で無い場合も何もしない
> If .Cells.Count > 1 Then Exit Sub
はどういう意味ですか?セルの数がシート上に1以上でない場合
という意味ですか?
お忙しいところすみません。
>試してみてください。
>メッセージボックスがでる場合、最初に提示した
>> シート名『1』のセルA5に数字「1」を入力するとシート名『A』のセルB20の
>> 値をシート名『1』のセルA6に貼り付ける。
>> シート名『1』のセルA5に数字「2」を入力するとシート名『B』のセルB20の
>> 値をシート名『1』のセルA6に貼り付ける。
>が間違っています。
>
>Private Sub Worksheet_Change(ByVal Target As Range)
> Dim Sh As String
> With Target
> ' A5以外の変更は何もしない
> If .Address(0, 0) <> "A5" Then Exit Sub
> ' セルの数が1で無い場合も何もしない
> If .Cells.Count > 1 Then Exit Sub
> ' セルの値で切り分け
> Select Case .Value
> Case 1: Sh = "A"
> Case 2: Sh = "B"
> ' 1, 2ではない
> Case Else
> MsgBox "1か2じゃねぇよ。"
> Exit Sub
> End Select
>
> Application.EnableEvents = False
>
> On Error Resume Next
>
> ' 指定のシートのB20の値をA6に入れる
> .Offset(1).Value = Worksheets(Sh).Range("B20").Value
>
> If Err.Number <> 0 Then
> MsgBox "'" & Sh & "'ってシートないじゃん。"
> End If
>
> On Error GoTo 0
>
> Application.EnableEvents = True
> End With
>End Sub
>
>
>ついでに、類似スレ
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=38974;id=excel
>も参考にしてください。
|
|