Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Access VBA代码处理Excel工作簿_Excel_Vba_Ms Access_Ms Access 2010_Excel 2013 - Fatal编程技术网

如何通过Access VBA代码处理Excel工作簿

如何通过Access VBA代码处理Excel工作簿,excel,vba,ms-access,ms-access-2010,excel-2013,Excel,Vba,Ms Access,Ms Access 2010,Excel 2013,我有一个Excel用户表单和一些Excel VBA代码,可以将一些工作表数据转换为可导入Access应用程序的格式。 代码运行得很好,但我认为,如果表单和代码移到Access应用程序中,而不是电子表格中,那么对开发和操作来说会更好 我在哪里可以学习如何将Excel VBA代码转换为在Access中工作,或者至少在哪里可以获得有关在Access VBA中处理Excel的编码的参考 完全基于 到目前为止,我已经设法从这一点开始(注意:以下所有内容都只是片段): 我已经设法改变了 Private so

我有一个Excel用户表单和一些Excel VBA代码,可以将一些工作表数据转换为可导入Access应用程序的格式。 代码运行得很好,但我认为,如果表单和代码移到Access应用程序中,而不是电子表格中,那么对开发和操作来说会更好

我在哪里可以学习如何将Excel VBA代码转换为在Access中工作,或者至少在哪里可以获得有关在Access VBA中处理Excel的编码的参考

完全基于 到目前为止,我已经设法从这一点开始(注意:以下所有内容都只是片段):

我已经设法改变了

Private source_sheet As Worksheet

Set source_sheet = Worksheets(source_cbo.Text)
source_sheet.Activate

Dim ws As Integer
For ws = 1 To Worksheets.Count
    source_cbo.AddItem Worksheets(ws).Name
从Excel VBA到Access VBA

xl_app.Sheets(source_cbo).Activate

Dim ws As Integer
For ws = 1 To xl_app.Worksheets.Count
    source_cbo.AddItem xl_app.Worksheets(ws).Name
source_empl_col = xl_app.Sheets(source_cbo).Range(empl_col_txt.Text & 1).Column
没有错误。然而,当涉及到转换时

source_empl_col = Range(empl_col_txt & 1).Column
从Excel VBA到Access VBA

xl_app.Sheets(source_cbo).Activate

Dim ws As Integer
For ws = 1 To xl_app.Worksheets.Count
    source_cbo.AddItem xl_app.Worksheets(ws).Name
source_empl_col = xl_app.Sheets(source_cbo).Range(empl_col_txt.Text & 1).Column
甚至只是

source_empl_col = xl_app.Sheets(source_cbo).Range("B1").Column
我明白了

运行时错误:“91”
对象变量。。。未设置

我需要翻译的代码太多了,所以它在Access中工作,而不知道我在做什么。
需要一些指导

在Access VBA中,要利用外部Office应用程序的对象模型,即Excel(但同样的规则适用于Outlook、PowerPoint、Word等),需要显式声明外部对象

您需要的是对象的显式声明和设置。你从应用程序直接跳到工作表,忘记了中间人-工作簿

或者,您甚至可以设置对象:


最后看到电子表格的人不是数据库,也不是用户界面,在应用程序和自动化环境中也不可扩展!“我不太清楚你是从哪里来的,@Parfait,但我认为这是一种恭维。”。
Dim xl_app As Object, xlwkb As Object, xl_wks As Object
Dim source_empl_col As Integer

Set xl_app = CreateObject("Excel.Application")
Set xl_wkb = xl_app.Workbooks.Open (workbook_txt)        
Set xl_wks = xl_wkb.Sheets(source_cbo)

source_empl_col = xl_wks.Range(empl_col_txt.Text & 1).Column