1

セルの値を埋める数式を実行しようとしていますが、セルが空の場合は 1 回だけです。入力したら、数式の一部であるセルが変更されても、値をそのままにしておきます。

すなわち

C: =VLOOKUP(Cx,'A$1:B$3,2,FALSE)

オリジナル

A       B      C
John    1      1
Bob     4      4
Jim     6      6

ジムのB値変更後

Jim     10      6

したがって、値がまだ存在しない場合にのみ、VLOOKUP が値を取得するようにします。IF で実行しようとしましたが、循環参照エラーが発生しました。

=IF(C1= "", VLOOKUP(C1,'A$1:B$3,2,FALSE),C1)
4

2 に答える 2

1

これはあなたが望む線に沿っていると思います

  • シートタブを右クリック
  • View Code
  • 以下のコードをコピーして貼り付けます
  • を押して Excel に戻ります

12 と入力しB4 A4空白でない場合

  1. C4が空の場合、12 に設定されます。
  2. 値がある場合C4は保持されます

コード

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Intersect(Columns("B:B"), Target)
If rng1 Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each rng2 In rng1
If rng2.Offset(0, -1).Value <> vbNullString Then rng2.Offset(0, 1).Value = rng2.Value
Next
Application.EnableEvents = True
End Sub
于 2013-05-03T02:58:18.343 に答える