捉急求助:vba打开spreadsheet

现在想将指定excel中的sheet1复制给窗口中的spreadsheet1,但不是窗口所在表格,是另外的excel中(知道文件路径和文件名)的sheet1,财富值少,已... 现在想将指定excel中的sheet1复制给窗口中的spreadsheet1,但不是窗口所在表格,是另外的excel中(知道文件路径和文件名)的sheet1,财富值少,已是全部,好人莫嫌,含泪求助
请问:该怎样锁定spreadsheet中的单元格啊?谢谢!
展开
 我来答
jidong2107
2013-09-09 · TA获得超过867个赞
知道小有建树答主
回答量:724
采纳率:75%
帮助的人:209万
展开全部
'这是后台打开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条件对个别单元格强制不得选中。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lilyjohn2000
2013-09-12 · 超过18用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:42.6万
展开全部
锁定12列代码:
With Me.Spreadsheet1
.Cells.Locked = False
.Columns(12).Locked = True
.Sheets(1).Protect
End With
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式