現在我們系統中用到了大量的EXECL做報表﹐但發現有操作人員私自修改打印出來的報表﹐能不能用VB控制﹕鎖死所有的功能﹐只保留"打印"功能與"打印預覽"功能﹐即不能修改導出來的數據。
解决方案 »
- 用WriteProcessMemory提示类型不匹配。
- 简单提问,进来看看,帮我搞定它,相信不用1分钟
- VB 关于AcroPDF控件
- 如何製作透明控件?
- 请教高手,怎样获得系统及用户的所有进程,包括每个进程占用的cpu和内存,以及进程id和进程名
- ********************************textbox的问题*********************************
- 怎么检测“按键盘的方向键”事件?
- 有人知道SQL Server的OLE DB驱动怎么打包吗?????
- 问题很简单,所以给的分也不很多,不过真的很容易的。
- 听说这里有许多的高手,我想好好的学一下VB,自己有电脑,希望能给个建议,看那本书比较好,实例多一点的!谢谢!
- 怎么用语句动太创建一个textbox数组?编辑事件该怎么编辑?
- 急~~~vb在access中建表的问题
請各位幫忙﹐謝謝﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗
报表导出的是一个.xls,如果人家用Excel打开修改,你也拦不住啊
我也和你一样遇到这样的问题,所以不建议你直接锁定其它的功能。
建议在代码中给表格设定一个保护密码,防止更改。
由于身边没有IDE,不能给你代码,自己搜索一下吧!
只要能夠把EXCEL里的以下功能屏蔽就可以﹕選擇(Ctrl+a)﹐復制(Ctrl+c),急。
請各位幫忙﹐謝謝﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗
添加一个宏:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Excel.ActiveSheet.Range("A1").Select
End Sub
然后在工具->VBAProject属性->保护 中锁定工程就可以啦!
Excel.ActiveSheet.Range("A1").Select
End Sub
----------------------------------------------------------
這個怎樣用VB寫宏﹐謝謝﹗
Application.OnKey "^C", "" '屏蔽Ctrl+c
dim excelapp as new excel.application
dim md as vbcomponent
dim lstrtmp as string
set md=excelapp.vbe.vbproject("ThisWorkbook").vbComponents.Add(Vbext_ct_stdmodule)
lstrtmp="Pivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)"
lstrtmp=lstrtmp & chr(10) & "Excel.ActiveSheet.Range("A1").Select" & chr(10) & "End Sub"
md.codemodule.addfromstring lstrtmp
Workbooks.Open FileName:=xlt, Editable:=False 向报表填数完毕后直接打印预览
ActiveWindow.SelectedSheets.PrintPreview用户看到的只有可打印内容
还有把你的模板保护起来,windows可以做到
ActiveWindow.SelectedSheets.PrintPreview
wkbk.close false