excel vba 调用函数

发布网友 发布时间:2022-04-21 19:28

我来回答

3个回答

热心网友 时间:2023-06-26 05:41

p = wb.ActiveSheet.Sheets3.Cells.Find("*", , , , 1, 2).Row

之前发的问题已经给建议
你到底使用activesheet,还是Sheets(3)
2者取1,不可并用,
有时间再帮你调试看看追问我要用的是sheet3,不是activesheet,有时间了你再帮我看看吧

追答Private Sub links() '链接共享里的内容
Dim wb As Workbook
Application.ScreenUpdating = False
Set fs = CreateObject("Scripting.FileSystemObject")
Set f2 = fs.getfolder("\\server3\DailyDump") '把txt路径改了就ok了
If Dir(f2 & "\" & "daily-item-release.txt") "" Then
i = ThisWorkbook.Sheets(3).Cells(rows.Count, 1).End(xlUp).Row + 1
Set wb = Workbooks.Open(f2 & "\" & "daily-item-release.txt")
wb.Activate
p = wb.ActiveSheet.Cells.Find("*", , , , 1, 2).Row '请注意必须要找到*的字符的行,否则找不到会返回出错,你要考虑到出错的可能,具体文本我们不知道,需要你自己去考量各种可能性及解决办法
rows("1:" & p & "").Copy ThisWorkbook.Sheets(3).rows(i) '你本工作簿必须要有3个或以上的sheet,否者会出错
wb.Saved = True
ActiveWindow.Close
MsgBox "已按要求成功导入TXT文件!"
Else
MsgBox "需要导入的文件不存在,请确定是否已经上传!"
End If
Application.ScreenUpdating = True
'End Sub

End Sub
Private Sub CommandButton4_Click()
links
sent
update
End Sub

用你的代码模拟本地文件运行了一下,关键错误在于如下
p = wb.ActiveSheet.Sheets3.Cells.Find("*", , , , 1, 2).Row

改成p = wb.ActiveSheet.Cells.Find("*", , , , 1, 2).Row
另外请看下写给你的注释,要注意一些情况
修正后运行无异常

热心网友 时间:2023-06-26 05:42

p = wb.ActiveSheet.Sheets3.Cells.Find("*", , , , 1, 2).Row

ActiveSheet与Sheets3是什么意思哦

有下面的试试,我没验证过你的代码,但很显然,上面的语法是错误的
p = wb.ActiveSheet.Cells.Find("*", , , , 1, 2).Row

p = wb.sheets(3).Cells.Find("*", , , , 1, 2).Row

p = wb.sheets("sheet3").Cells.Find("*", , , , 1, 2).Row

而且cells是没有Find方法或Find属性的,你的用法就有问题
如果你是想得到sheets(3)已经使用单元格的总行数
应该用下面这个
p = wb.sheets("sheet3").usedrange.rows.count

你的End Sub 前面为什么有一个 '

热心网友 时间:2023-06-26 05:42

你这种人就是不值得理,把我写的代码放这里,你不采纳别人的回答还把人家的代码放这里让人改,真是卑鄙啊,大家不要理这种人
http://zhidao.baidu.com/question/453234253.html?oldq=1追问不好意思啊,没有及时到给分,对不起,就是现在的这个问题,你能不能再帮我看看啊,上周五就是你给我弄好的,但是现在,你也看到了,麻烦你了啊~~~~(>_<)~~~~
如果可以的话,你能帮我再看看吗,非常感谢

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com