Работа с числами в Word
Модератор: Naeel Maqsudov
Подскажите пожалуйста с решением задачи. Есть файл Word. В нем таблица. Как сделать так, чтобы в столбиках, где номер, где 8-10 цифр, дописывались единички спереди, подгоняя число до 12 цифр, а где 11-12 цифр, они не оставались как есть?
Мне понятно, что надо сразу 2 условия: функция IsNumeric = true и Len(числа) = 8-10 добавлять "111" & "9 цифр". Но как обратиться к этим столбикам?
Если не трудно, напишите код с пояснениями.
Мне понятно, что надо сразу 2 условия: функция IsNumeric = true и Len(числа) = 8-10 добавлять "111" & "9 цифр". Но как обратиться к этим столбикам?
Если не трудно, напишите код с пояснениями.
Доступ к значению ячейки таблицы:
ThisDocument.Tables(A).Cell(X, Y).Range.Text
где А - номер таблицы в документе в порядке создания, Х,У - номер ряда и колонки ячейки в таблице
ThisDocument.Tables(A).Cell(X, Y).Range.Text
где А - номер таблицы в документе в порядке создания, Х,У - номер ряда и колонки ячейки в таблице
It's a long way to the top if you wanna rock'n'roll
Спасибо, а можно чуть подробнее? У меня таблица на 200 листов идет. Я же не буду каждую ячейку вбивать, столбец надо. Можно ли его забить в переменную и уже с ней сравнивать?
Hralain, Если ячейки столбца, где находятся исходные числа, не об'единены, то можно попробовать замутить что-то вроде нижеопубликованного варианта, разумеется указав свои индексы(номера) таблиц и столбца.
Код: Выделить всё
Private Sub Test()
Dim objCell As Word.Cell, strText$, dblCell#, intLength%
For Each objCell In ThisDocument.Tables(1).Columns(2).Cells
'1 - номер(индекс) таблицы в текущем документе
'2 - номер(индекс) столбца в котором необходимо добавить "префиксы"
strText = Replace(objCell.Range.Text, ".", ",")
strText = Left(strText, Len(strText) - 2)
If IsNumeric(strText) = True Then
dblCell = CDbl(strText): intLength = Len(strText)
Select Case intLength
'Case 1 To 7, Is > 12
'типа оставить как есть ?
Case 8 To 10
objCell.Range.Text = String(12 - intLength, "1") & dblCell
End Select
End If
Next
End Sub
Если обращаться к конкретному столбику, то не надо условие чисел (IsNumeric), в том столбе только номера и будут. Причем они будут от 8 до 12 цифр, ни больше, ни меньше.
Мне бы Вашу уверенность ... впрочем, что мешает избавиться от "ненужной" проверки ...
А если у меня много одинаковых таблиц? Как чтобы он во всех посмотрел этот столбец?
перебрать таблицы, например For Each tbl In ThisDocument.Tables
It's a long way to the top if you wanna rock'n'roll
Ну покажите с примером пожалуйста.