日曜日、18月2022
  2 返信
  4.7K訪問
セルから同じ行の別の列にデータをコピーするための VBA をコピーし、列 F のセルを変更して値を列 E に保存できるように変更しましたが、試しても何も起こりません。 誰かが私が間違っていることを教えてもらえますか? また、変更を行うときに G 列に日付スタンプを配置したいと思います。

列Iのセルを変更して列Hに保存し、列Jで変更する日付スタンプを変更するときにも同じことができることを望んでいました.

どんな助けでも大歓迎です。


範囲としての薄暗いxRg
範囲としての Dim xChangeRg
範囲としての Dim xDependRg
新しいディクショナリとして Dim xDic
プライベートサブワークシート_Change(ByValターゲットを範囲として)
薄暗い私は長く
xCellAsRangeを暗くする
範囲としての Dim xDCell
Dim xHeader を文字列として
Dim xCommText を文字列として
エラーで次の再開
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "以前の値:"
x = xDic.Keys
I = 0 の場合、UBound(xDic.Keys) へ
xCell = Range(xDic.Keys(I)) を設定します。
xDCell = Cells(xCell.Row, 5) を設定します。
xDCell.Value = ""
xDCell.Value = xDic.Items(I)
Next
application.enablevents = true
Application.ScreenUpdating = True
End Subの
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I、J As Long
範囲としての Dim xRgArea
エラー時 GoTo Label1
Target.Count> 1の場合、Subを終了します
Application.EnableEvents = False
xDependRg = Target.Dependents を設定します。
xDependRg が何もない場合、GoTo Label1
xDependRg が何もない場合
Set xDependRg = Intersect(xDependRg, Range("F:F"))
終了する場合
ラベル1:
Set xRg = Intersect(Target, Range("F:F"))
(Not xRg は何もない) かつ (Not xDependRg は何もない) 場合
xChangeRg = Union(xRg, xDependRg) を設定します。
ElseIf (xRg は何もない) かつ (xDependRg は何もない) then
xChangeRg = xDependRg を設定します
ElseIf (xRg は何もない) かつ (xDependRg は何もない) then
xChangeRg = xRg を設定します

application.enablevents = true
サブを終了
終了する場合
xDic.RemoveAll
I = 1 の場合 xChangeRg.Areas.Count へ
xRgArea = xChangeRg.Areas(I) を設定します。
J = 1 の場合 xRgArea.Count へ
xDic.Add xRgArea(J).Address、xRgArea(J).Formula
Next
Next
xChangeRg = なしに設定
xRg=なしに設定
xDependRg = Nothing に設定
application.enablevents = true
End Subの
1年前
·
#3309
UPDATE

VBAが動く! 以下のコードを参照してください。 列Iのセルを変更すると、値が列Hに保存されるように、それを変更するのに助けが必要です.


範囲としての薄暗いxRg
範囲としての Dim xChangeRg
範囲としての Dim xDependRg
新しいディクショナリとして Dim xDic
プライベートサブワークシート_Change(ByValターゲットを範囲として)
薄暗い私は長く
xCellAsRangeを暗くする
範囲としての Dim xDCell
Dim xHeader を文字列として
Dim xCommText を文字列として
エラーで次の再開
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "以前の値:"
x = xDic.Keys
I = 0 の場合、UBound(xDic.Keys) へ
xCell = Range(xDic.Keys(I)) を設定します。
xDCell = Cells(xCell.Row, 5) を設定します。
xDCell.Value = ""
xDCell.Value = xDic.Items(I)
Next

Target.Column = 6の場合Then
Application.EnableEvents = False
Cells(Target.Row, 7).Value = 日付
application.enablevents = true
終了する場合

Target.Column = 9の場合Then
Application.EnableEvents = False
Cells(Target.Row, 10).Value = 日付
application.enablevents = true
終了する場合
application.enablevents = true
End Subの
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I、J As Long
範囲としての Dim xRgArea
エラー時 GoTo Label1
Target.Count> 1の場合、Subを終了します
Application.EnableEvents = False
xDependRg = Target.Dependents を設定します。
xDependRg が何もない場合、GoTo Label1
xDependRg が何もない場合
Set xDependRg = Intersect(xDependRg, Range("F:F"))
終了する場合
ラベル1:
Set xRg = Intersect(Target, Range("F:F"))
(Not xRg は何もない) かつ (Not xDependRg は何もない) 場合
xChangeRg = Union(xRg, xDependRg) を設定します。
ElseIf (xRg は何もない) かつ (xDependRg は何もない) then
xChangeRg = xDependRg を設定します
ElseIf (xRg は何もない) かつ (xDependRg は何もない) then
xChangeRg = xRg を設定します

application.enablevents = true
サブを終了
終了する場合
xDic.RemoveAll
I = 1 の場合 xChangeRg.Areas.Count へ
xRgArea = xChangeRg.Areas(I) を設定します。
J = 1 の場合 xRgArea.Count へ
xDic.Add xRgArea(J).Address、xRgArea(J).Formula
Next
Next
xChangeRg = なしに設定
xRg=なしに設定
xDependRg = Nothing に設定

application.enablevents = true
End Subの
1年前
·
#3310
明確にするために、これはすでに行っていることに追加されます。 列 F と列 I の両方で行われた変更を追跡できるようにしたいと考えています。混乱して申し訳ありません。
  • ページ:
  • 1
この投稿に対する返信はまだありません。