【问题标题】:Appending number to label names and assign value from Excel to caption through looping将数字附加到标签名称并通过循环将 Excel 中的值分配给标题
【发布时间】:2018-06-05 21:20:03
【问题描述】:

我在word文档中的标签格式如下

<Name_Prod1>
<Curr_Cost1>
<Est_Cost1>


<Name_Prod11>
<Curr_Cost11>
<Est_Cost11>

<<Name_Prod12>
<Curr_Cost12>
<Est_Cost12>

<Name_Prod13>
<Curr_Cost13>
<Est_Cost13> 

等等……

我的excel格式为:

<S.NO> <Product name> <Current cost> <Est cost>

我想通过 excel 工作表获取值并将它们替换在关联标签的标题中。

我的代码如下。但我无法创建通用格式来将编号附加到标签名称并循环遍历标签编号。

Private Sub CommandButton1_Click()
Dim objExcel As New Excel.Application
Dim exWb As Excel.Workbook
Set exWb = objExcel.Workbooks.Open("C:****.xlsx")
Dim i As Integer
Dim j As Integer: j = 1

'For the first set 
ThisDocument.Name_Prod1.Caption = exWb.Sheets("Main Sheet").Cells(2, 2)
ThisDocument.Curr_Cost1.Caption = exWb.Sheets("Main Sheet").Cells(2, 3)
ThisDocument.Est_Cost1.Caption = exWb.Sheets("Main Sheet").Cells(2, 4)

'For the next set onwards
For i = 1 To i + 2 = 60
Dim ji As String
ji = j & i
'ji should be 11, 12, 13... as i increases
Dim np As Object: Set np = "Name_Prod" & ji
Dim cc As String: cc = "Curr_Cost" & ji
Dim ec As String: ec = "Est_Cost" & ji
ThisDocument.np.Caption = exWb.Sheets("Main Sheet").Cells(i + 2, 2)
ThisDocument.cc.Caption = exWb.Sheets("Main Sheet").Cells(i + 2, 3)
ThisDocument.ec.Caption = exWb.Sheets("Main Sheet").Cells(i + 2, 4)

Next


exWb.Close

Set exWb = Nothing

End Sub

请帮忙解决一下

【问题讨论】:

  • 这项工作是否有效ThisDocument.Name_Prod1.Caption = exWb.Sheets("Main Sheet").Cells(2, 2) - 您是否收到错误消息或格式不正确的字符串?示例非常适合调试
  • 是的,第一组有效
  • 尝试将变量名放在数组样式中 - 查看答案

标签: excel vba ms-word


【解决方案1】:

如果你的语法正确并且你可以编译这行代码而不会出错

ThisDocument.Name_Prod1.Caption = exWb.Sheets("Main Sheet").Cells(2, 2)

然后您应该能够使用相同的方法引用其他标签。 只需将变量插入到 ThisDocument 的括号值中

ThisDocument.np.Caption 变为 ThisDocument(np).Caption

ThisDocument.cc.Caption 变为 ThisDocument(cc).Caption

ThisDocument.ec.Caption 变为 ThisDocument(ec).Caption

Option Explicit 开始您的模块总是一个好主意 - 然后当您使用Debug | Compile 时,您可以报告导致错误消息的行并将错误消息添加到您的问题中。这些是编写一个有机会得到回答的好问题的关键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2021-05-19
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多