【问题标题】:How to program excel file to gather checkboxed documents from list?如何编写 excel 文件以从列表中收集选中的文档?
【发布时间】:2014-07-22 20:17:23
【问题描述】:

首先,感谢您分享的优质信息。我感谢所有的问题和答案,我发现它们非常有用。现在我在 excel 中使用 vba 编程时遇到问题。

我在 excel 中有一长串不同的文档和文档名称/代码,我希望可以使用复选框来选择要打印的文档。 文档已经在同一个word文件中,可以用作源文件。因此,复选框、文档代码和来源应链接在一起。 我在列表旁边创建了两个命令按钮,其中一个用于打印和创建组合报告,另一个用于重置(取消选中所有复选框)。

我希望我清楚自己在寻找什么以及是否有可能获得如何前进的建议。

到目前为止,我设法对重置按钮进行了编程,但为了创建打印功能,我发现它真的很困难且不清楚。

编辑:

到目前为止,我一直在尝试创建一些宏,它将列表中的所有复选框行收集到另一张表 (PRINT),并使用以下未完成的代码开始:

Private Sub CommandButton1_Click()

   Dim cb As CheckBox
   Dim rng As Range
   Dim row As Range

   Set rng = Range(A7, b153)

   For Each row In rng.Rows
      If cb = True Then Run (sbcopyrangetoanothersheet)
   Else: Next row

End Sub

Sub sbcopyrangetoanothersheet()

   Sheets(Documents).Range(A7,b153).Copy Destination:=Sheets(PRINT).Range(A7,B153)

   Range(A7, b153).Copy
   Range(A7, b153).Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

End Sub

重置宏:

Sub Reset()

Dim sh As Worksheet
    For Each sh In Sheets
        On Error Resume Next
            sh.CheckBoxes.Value = False
        On Error GoTo 0
    Next sh

End Sub

【问题讨论】:

  • 请分享用于循环文档的代码。没有代码的问题是不受欢迎的。
  • 对不起,上面的代码没有正确标记,感谢您的建议!
  • 欢迎来到 SO,如果有问题,请记住将问题标记为已回答,并记得对任何其他对您有帮助的答案/问题进行投票。
  • 谢谢!你认为这是不可能用VBA做的吗?我相信在这种情况下,启动全新的程序(经验不足/没有经验)将需要更多的时间和精力。
  • 下面的代码应该适合你。它的 VBA 代码。您唯一需要提供的是 word 文档的路径。

标签: excel list vba checkbox external


【解决方案1】:

你可以像这样循环,打开worddoc打印,再通过winWord打印。 有很多选项可以解决这个问题,因此请查看 MSDN 上的文档,但这应该会为您指明一个方向。

我不建议再使用 VBA 了,而是使用 .net(vb 或 c#)winform 和 openXML 来打印。

任何人。这是代码,它从我的脑海中撕下来,所以它可能无法完全编译。

For Each control In ActiveSheet.OLEObjects
  If control.Name Like "CheckBox*" Then 
     if control.Object.Value == true then PrintWinWord ("somehow infer word doc Path from eitherName of checkbox or id")
  End If
Next control


Sub PrintWinWord(dim wordDocPath as string)
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Open(wordDocPath )
    objDoc.PrintOut
    objDoc.Close
    objWord.Quit
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多