1

我正在尝试创建一个 VB 脚本,该脚本搜索一列日期并返回带有今天日期的单元格地址。出于某种原因,我不断收到“需要对象:'FoundCell'”错误。有人可以看看我的代码并纠正我吗?我可以使用 WScript.Echo 读出日期,但是一旦我在 find 函数中使用它,它就会立即给我错误。

Set oExcel = CreateObject("Excel.Application")
Set wshShell = CreateObject("Wscript.Shell")

File_Path = "D:\Work\Personal Timemanagement\test.xlsx"


Set oData = oExcel.Workbooks.Open(File_Path)

WHAT_TO_FIND = Date()
WScript.Echo WHAT_TO_FIND

Set FoundCell = oData.Worksheets("tst2").Range("A1:A40").Find(WHAT_TO_FIND)
oExcel.Cells(4,4) = FoundCell.Address


oExcel.ActiveWorkbook.SaveAs "D:\Work\Personal Timemanagement\test2.xlsx"
oExcel.ActiveWorkbook.Close

oExcel.Application.Quit

WScript.Quit

谢谢您的帮助!

4

3 回答 3

1

WHAT_TO_FIND1 返回的值类似于 #14/10/2014#。因此,使用 WHAT_TO_FIND1=Replace(WHAT_TO_FIND,"#","Nothing") 将 # 替换为空。

一旦替换上面的代码将工作

于 2014-04-14T06:39:50.073 回答
0

Find()Nothing在给定范围内未找到给定值时返回。确保工作簿中工作A1:A40表上的范围实际上包含具有当前日期的单元格,并且该单元格也被格式化为日期。例如,如果您正在查找日期并且范围包含带有字符串的单元格(格式化为文本),则不会返回匹配项。像这样修改您的语句以查找“文本”单元格:tst2D:\Work\Personal Timemanagement\test.xlsxFind()7/11/20137/11/2013

Set FoundCell = oData.Worksheets("tst2").Range("A1:A40").Find(CStr(WHAT_TO_FIND))
于 2013-07-11T15:00:37.347 回答
0

我试过你的脚本,非常适合我。出于测试目的,我建议您在脚本中添加以下行

oExcel.Visible = True 

还要确保 Excel 的所有 privies 实例都已关闭,以便您的脚本可以获得写入权限。(打开任务管理器并结束所有 Excel 进程 - 除非您打开了其他 Excel 文件)

现在确保工作表拼写正确“tst2”还确保范围正确“A1:A40”

随时通知我们。

于 2013-07-11T13:52:59.220 回答