捉急求助:vba打开spreadsheet
现在想将指定excel中的sheet1复制给窗口中的spreadsheet1,但不是窗口所在表格,是另外的excel中(知道文件路径和文件名)的sheet1,财富值少,已...
现在想将指定excel中的sheet1复制给窗口中的spreadsheet1,但不是窗口所在表格,是另外的excel中(知道文件路径和文件名)的sheet1,财富值少,已是全部,好人莫嫌,含泪求助
请问:该怎样锁定spreadsheet中的单元格啊?谢谢! 展开
请问:该怎样锁定spreadsheet中的单元格啊?谢谢! 展开
2个回答
展开全部
'这是后台打开EXCEL的思路,下面是代码,你参考下:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Dim FSs, FLs
Set FSs = CreateObject("Scripting.FileSystemObject")
FLs = "d:\驾驶员相关到期提醒.xls"
If FSs.FileExists(FLs) = False Then '验证文件是否存在
exit sub
Else
Set xlBook = xlApp.Workbooks.Open("d:\驾驶员相关到期提醒.xls")
End If
xlApp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("sheet1") '设置活动工作表
xlSheet.Cells.Copy
Spreadsheet1.Cells.Select
ActiveSheet.Paste
xlbook.close
Set xlApp = Nothing '释放xlApp对象
追问
谢谢!问题已经解决,先后台打开excel复制到当前文档中,然后再关闭excel,将当前文档中的表格复制到spreadsheet,但还有个问题想请教:怎样锁定spreadsheet中的单元格啊?谢谢
追答
最简单的就是在SelectionChanging事件中判断当前单元格的行列值,强制制定当前单元格:
With Spreadsheet1
x = .ActiveCell.Row
Y = .ActiveCell.Column
If x < 3 Then x = 3 '锁定标题行
If Y < 2 Then Y = 2 '锁定数据列
If x > s2 - 1 Then x = s2 - 1 '锁定最大行
If Y > s1 - 1 Then Y = s1 - 1 '锁定最大列
end with
也可以用if条件对个别单元格强制不得选中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询