捉急求助:vba打开spreadsheet
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了捉急求助:vba打开spreadsheet相关的知识,希望对你有一定的参考价值。
现在想将指定excel中的sheet1复制给窗口中的spreadsheet1,但不是窗口所在表格,是另外的excel中(知道文件路径和文件名)的sheet1,财富值少,已是全部,好人莫嫌,含泪求助
请问:该怎样锁定spreadsheet中的单元格啊?谢谢!
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 Spreadsheet1x = .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条件对个别单元格强制不得选中。
参考技术B 锁定12列代码:With Me.Spreadsheet1
.Cells.Locked = False
.Columns(12).Locked = True
.Sheets(1).Protect
End With本回答被提问者采纳
以上是关于捉急求助:vba打开spreadsheet的主要内容,如果未能解决你的问题,请参考以下文章