1
Webサイトから引き出して自動的に(または手動で)更新するテーブルがExcelにあります。Excelでのデータ更新後の範囲の並べ替え
データが更新されるたびに自動的にソートしたい別のテーブルがリンクされています。これを行う方法は?
Webサイトから引き出して自動的に(または手動で)更新するテーブルがExcelにあります。Excelでのデータ更新後の範囲の並べ替え
データが更新されるたびに自動的にソートしたい別のテーブルがリンクされています。これを行う方法は?
自動的に更新する必要のあるテーブルがあるシートには、以下のコード(擬似コード)のようなものを追加することができます。テーブルが変更されるたびにテーブルがソートされます。頻繁に更新を受けると、時間がかかることに注意してください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target is in the table (you can check Target.Row and Target.Column for example) Then
Sort the table
End If
End Sub
範囲を使用すると、たとえば、これを行うことができます名前付き範囲と呼ばれるnamed_range(非常に効率的ではなく読めない)の場合:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In [named_range]
If c = Target Then MsgBox "OK"
Next c
End Sub
それとも、これを行うことができ、より良いの名前は行われます範囲が大きい:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim row_start As Long
Dim row_end As Long
Dim col_start As Long
Dim col_end As Long
row_start = [named_range].Cells(1, 1).Row
col_start = [named_range].Cells(1, 1).Column
row_end = row_start + [named_range].Rows.Count - 1
col_end = col_start + [named_range].Columns.Count - 1
If Target.Row >= row_start And Target.Row <= row_end And Target.Column >= col_start And Target.Column <= col_end Then
MsgBox "In range"
End If
End Sub
提案ありがとうございます...私は最初の列がランク(ランク関数を使用して)であるテーブルがあります。したがって、ランクは更新されたデータに基づいて変化します。変更の全範囲を監視するにはどうすればよいのですか(必ずしもすべてが変更されるわけではないので)。 – McB
範囲がA1:A5であると仮定すると、次のようにテストできます。If Target.Row> = 1 And Target.Row <= 5 And Target.Column = 1 Then ... – assylias
どのように「IF Target IN namedRange Then "? – McB