excel - 将数字附加到标签名称并通过循环将 Excel 中的值分配给标题
问题描述
我在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)
然后您应该能够使用相同的方法引用其他标签。只需将变量插入到 ThisDocument 的括号值中
ThisDocument.np.Caption
变成ThisDocument(np).Caption
ThisDocument.cc.Caption
变成ThisDocument(cc).Caption
ThisDocument.ec.Caption
变成ThisDocument(ec).Caption
开始你的模块总是一个好主意Option Explicit
- 然后当你使用时,Debug | Compile
你可以报告导致错误消息的行并将错误消息添加到你的问题中。这些是编写一个有机会得到回答的好问题的关键。
推荐阅读
- batch-file - NSIS - 监视器对 CMD 命令变量的刷新率
- google-sheets - 基于函数的绘图可见性
- robotframework - 无法使用 RobotFramework 启动 Firefox
- java - Java Calendar/SimpleDateFormat 给出无效日期
- ios - 目标 'arm64-apple-ios' 在 iOS 'Heimdall' 中出现错误;找到:x86_64“
- python - 当我尝试将电子邮件地址发送到文本框时,Send_Keys 不会发送“@”符号
- android - Android Studio中的启动画面与徽标填充?
- c# - 从视图访问模型数据
- python - 使用 cdef int[:, ::1] 声明一个多维数组
- c# - 通过 FIFO 方法 LINQ 查询库存和价值