0

access 2003 に、transferSpreadsheet 関数を使用して Union クエリを Excel 2007 スプレッドシートにエクスポートするマクロがあるとします。ユーザーが入力した日付範囲に応じて、エクスポートされたデータ。

ここで、この UNION ALL クエリがテーブルとクエリをグループ化したとします。リンクされたテーブルと欠落しているフィールドを追加する別のテーブルの LEFT JOIN であるクエリ。

ユニオンの一部である3つのテーブル(テーブル、クエリ(2テーブル))のレコードの適切なフィールドを同時に更新するために、Excelのセルを更新できるようにすることは可能ですか(直接編集することはできず、使用されるだけです) 1 つのテーブルですべての情報を取得するには)? もしそうなら、誰かがこれを行う適切な方法を教えてくれるか、少なくともいくらか正しい方向に私を導くことができますか?

Excelファイルをvbaでエクスポートおよびフォーマットしているときに、セルをリンクしたいと思います。エンドユーザーは、セルをリンクするために何をすべきかわからないためです。ファイルは毎月生成され、翌月に変更され、翌月中に更新されることもあり、両方が同時に処理されるためです。それらがリンクされていると、Excel ファイルを継続的に生成する必要がなくなります。

使用:

VBA (vb.net ではない)

アクセス 2003

エクセル2007

4

1 に答える 1

0

kdgwill さん、transferspreadsheet 関数を実行した後、次の操作を実行できます。これにより、保存したばかりのスプレッドシートの名前が取得され、変更する必要があるものを操作してから、同じ名前または新しい名前で Excel に保存されます。これは、データのサイズによっては非常に高速に発生します。65,000 行のデータの多くは、ファイルを保存するのに 1 分ほどかかります。この関数を呼び出しても、テーブルにデータを追加できます。これを操作して、自分の手段で操作できるかどうかを確認してください。

Dim objExcel            As New Excel.Application
Dim objWB               As Excel.Workbook
Dim objWS               As Excel.Worksheet
Dim objWS2              As Excel.Worksheet
Dim objCell             As Excel.Range



Set objExcel = CreateObject("Excel.Application")
Set objWB = objExcel.Workbooks.Open("path of the original excel file\excelfile.xls")

objWB.Activate
'Do not show the excel window during this operation.  By doing this the processing is faster.
objExcel.Visible = False

sSection = "Open Spreadsheet"
If objWB.Worksheets.Count = 0 Then
    objWB.Worksheets.Add
End If

'Open the first sheet named what ever you want to name it
 Set objWS = objWB.Sheets(1)

objWS.Name = "Name of Spreadsheet"
objWS.Activate

'Change the font to black or anything else you want to change
With objWS
    .Cells.Select
    .Cells.Activate
    .Cells.Font.Size = "12"
    .Cells.Font.Color = 0
    .Cells.Range("A1", "A1").Select
End With

    objExcel.Workbooks(1).SaveAs "path of new excel file to be saved\excelfile.xls"

'Clean up 
objWB.Close
Set objWB = Nothing
Set objExcel = Nothing
于 2016-01-22T01:46:40.100 に答える