作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 5 台计算机和两台打印机通过 LAN 连接。在其中一台计算机(未共享)中有一个特定的 excel 文档,我希望将可打印的副本数量限制为 4。这意味着用户不能打印超过 4 个该文档的副本。
我知道影印(和更多)漏洞,但我仍然希望打印副本以受控或有限的数量出现。
我浏览了一些打印控制软件的功能,但我了解到它们都有一个“配额”系统,用户在超出限制后必须支付打印费用。恐怕这对我不起作用。
我还阅读了此处发布的类似问题的答案,Set number of copies per worksheet
值得庆幸的是,这个答案对我很有帮助,除了我不知道如何限制或限制用户打印超出指定数量的内容。
我也阅读了很多答案,说限制副本数量几乎是不可能的,但我仍然希望寻求帮助 - 也许会出现一些解决方案。
我对计算机/打印机编程没有太多深入的了解。虽然不是专业人士,但我对 excel vba 有点熟悉。
请让我知道是否有任何解决方案,
一旦我找到东西,我会在这里发布。
非常感谢您的帮助。
最佳答案
这是一个粗略的解决方案,但这会增加打印数量的一些限制......
置入ThisWorkbook
:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
If Cancel = True Then
MsgBox "Please use the print button on Sheet1."
End If
End Sub
CommandButton
并将其重命名为
PrintButton
然后将这个子程序(和附带的函数)插入到
Module
Private Sub PrintButton_Click()
On Error Resume Next
Application.EnableEvents = False
If (CanWePrint(4)) Then
ActiveSheet.PrintOut
Else
MsgBox ("Sorry this is the maximum number of prints for this document!")
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
Function CanWePrint(ByVal MaxPrintVal As Integer) As Boolean
Dim CurrentPrintCount As String, SecretFile As String
'PLEASE CHANGE TO YOUR "SECRET" TXT FILE NAME AND LOCATION!
SecretFile = "C:\Users\Matt\Documents\countPrint.txt"
CurrentPrintCount = GetCount(SecretFile)
If (CurrentPrintCount < MaxPrintVal) Then
Call UpdatePrintCount(CurrentPrintCount, SecretFile)
CanWePrint = True
Else
CanWePrint = False
End If
End Function
Function GetCount(ByVal SecretFile As String) As Integer
Dim nSourceFile As Integer
Dim sText As String
Close
nSourceFile = FreeFile
Open SecretFile For Input As #nSourceFile
sText = Input$(LOF(1), 1)
Close
GetCount = CInt(sText)
End Function
Sub UpdatePrintCount(ByVal CurrentVal As Integer, ByVal SecretFile As String)
Dim sBuf As String
Dim sTemp As String
Dim iFileNum As Integer
iFileNum = FreeFile
Open SecretFile For Input As iFileNum
Do Until EOF(iFileNum)
Line Input #iFileNum, sBuf
sTemp = sTemp & sBuf & vbCrLf
Loop
Close iFileNum
sTemp = Replace(sTemp, CurrentVal, CurrentVal + 1)
iFileNum = FreeFile
Open sFileName For Output As iFileNum
Print #iFileNum, sTemp
Close iFileNum
End Sub
CommandButton
您创建一个手动打印选项,它将检查存储在
.txt
中的打印计数文件,这意味着文档可以关闭并重新打开,但仍然只能打印 4 次。
CanWePrint
中更新上面代码中的路径. .txt
中的值文件 关于excel - 限制打印份数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737900/
我有一个按参数构建的报告,包含 3 列和相同的值。 之后,分页。 我想自动打印这份报告 X 份。 PS:不能循环同一文档。我确实需要插入此文档的“份数”。 public void imprimir(S
我是一名优秀的程序员,十分优秀!