如何从Module - Excel VBA中的另一个工作表引用单元格?

时间:2018-04-27 02:30:49

标签: sql excel vba excel-vba

我在Excel工作簿中有一个宏,它通过单击Sheet3中的按钮将Sheet1中的日期更新为SQL。 Sheet3还在更新过程中将单元格用作参数。

目前,宏放在一个模块中,我的SQL语句如下:

sSQLUpd = "update [table1].[dbo].[Plan] set [Plan_QTY] = " & Plan & "_
           where [MacID] = " & Mac & " and [ModelID] = " & Mdl & " and [Date] = " & dt & "_
           and DATEPART(year,[Date])= " & Sheets("Sheet3").Cells(3, 3).Value & "_
           and DATEPART(month,[Date])= " & Sheets("Sheet3").Cells(3, 6).Value & ""
conn.Execute sSQLUpd

但是当我测试代码时,我的错误处理程序中的“下标超出范围”。

SQL结构很好,因为我通过替换部分来测试它:

DATEPART(year,[Date])= " & Sheets("Sheet3").Cells(3, 3).Value & "

DATEPART(month,[Date])= " & Sheets("Sheet3").Cells(3, 6).Value & "

有实际数字,数据可以通过。

因此可以安全地假设引用Sheet3中的单元格的代码存在问题。也许它放在模块中时不想玩得好?

我甚至尝试了不同的变化:

DATEPART(year,[Date])= " & Sheets("Sheet3").range("C3").Value & "

没有骰子......

我可以做些什么来修改它?

1 个答案:

答案 0 :(得分:0)

等等......没关系。我弄清楚出了什么问题。我需要做的就是改变 表格(“Sheet3”)仅限于Sheet3:

DATEPART(year,[Date])= " & Sheet3.Cells(3, 3).Value & "

它始终是与我紧密相连的简单东西。 :P