Добавление номера к именам меток и присвоение значения из Excel заголовку с помощью цикла - PullRequest
0 голосов
/ 06 июня 2018

У меня есть формат меток в текстовом документе следующим образом

<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

Пожалуйста, помогите с некоторыми решениями

1 Ответ

0 голосов
/ 06 июня 2018

Если у вас правильный синтаксис и вы можете скомпилировать эту строку без ошибки

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, вы можете сообщить в строке, которая вызывает сообщение об ошибке, и добавить сообщение об ошибке в свой вопрос.Это ключи к написанию хорошего вопроса, на который есть шанс получить ответ.

...