0

考虑我在 access 2003 中有一个宏,它使用 transferSpreadsheet 函数将联合查询导出到 excel 2007 电子表格;导出的数据取决于用户输入的日期范围。

现在假设这个 UNION ALL 查询将一个表和一个查询分组。查询是链接表和另一个表的左连接,以添加缺少的字段。

是否可以允许更新excel中的单元格以同时更新三个表(表,查询(2表))中记录的正确字段,这些表是联合的一部分(不能直接编辑,只能使用在一张表中获取所有信息)?如果是这样,有人可以告诉我正确的方法来做到这一点,或者至少在某种程度上引导我朝着正确的方向前进吗?

如果我在 vba 中导出和格式化 excel 文件时,我希望它链接单元格。由于最终用户不知道如何链接单元格。我问是因为该文件是每月生成的,整个月到下个月都会更改,有时在下个月仍然会更新,并且两者都是同时进行的。如果它们链接起来会更容易,这样就不必连续生成excel文件。

使用:

VBA(不是 vb.net)

访问 2003

Excel 2007

4

1 回答 1

0

kdgwill,在执行您的传输电子表格功能后,您可以执行以下操作。这将获取刚刚保存的电子表格的名称,操作您需要更改的内容,然后使用相同的名称或新名称将其保存回 Excel。根据数据的大小,这种情况发生得非常快。65,000 行数据需要一分钟才能保存文件。即使调用此函数,您也可以将数据添加到表中。使用它,看看您是否可以根据自己的方式操纵它。

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 回答