各ユーザーに固有のデータを返すクエリを含む、SQL Server からの外部データ テーブルを含むスプレッドシートがあります。このファイルに、一度ダウンロードしてからリンクを解除できるように指示を入れました。
残念ながら、あるユーザーはそれをせず、大量のデータを追加して「保存」し、作業内容を失ってしまいました。
データを復元する方法はありますか?
答え1
残念ですが、残念ながら、残念ながら、"ブックを保存する前に外部の日付範囲からデータを削除する" チェックボックスをオンにしているため、追加されたデータは保存されず、ユーザーのデータを取得する場所がありません。
今後このような事故を防ぐために、まだマクロが有効になっていない場合は、ブックをマクロ有効 (.xlsm) に変更し、BeforeSave イベントにチェックを追加して、テーブルのリンクが解除されているかどうかを確認します。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sMsg As String
' Assuming the data table is the first table on the first worksheet
With Worksheets(1).ListObjects(1)
If .SourceType <> xlSrcRange Then
sMsg = "Any changes you've made to the table won't be saved unless you unlink from the database!" _
& vbCrLf & vbCrLf & "Do you want to unlink?"
If MsgBox(sMsg, vbExclamation + vbYesNo) = vbYes Then
.Unlink
End If
End If
End With
End Sub