|
|
|
Макрос
|
|||
|---|---|---|---|
|
#18+
Мне надо написать макрос, который считает AVERAGE в поле в таблице Word, и если это значение не совпадает с табличным рисует его красным! Помогите! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2008, 13:04 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
> Автор: ledirina > Мне надо написать макрос, который считает AVERAGE в поле в таблице Word, > и если это значение не совпадает с табличным рисует его красным! Очень информативно! В нужном документе ищеш интересующую таблицу, по каким критериям искать тебе виднее. Потом делаешь цикл по интересующему столбцу/строке, сумируешь значения и по окончанию делишь на количество значений. Сравниваешь с исходным результатом и если нужно красишь. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. > Помогите! ;) -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2008, 15:26 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
ой...спасибочки, а я вот так сделала! Dim ss, sss As String Dim ii, y, z As Integer y = 12 z = 1 For ii = 4 To Selection.Tables(z).Rows.Count -1 Selection.Tables(z).Rows(ii).Select ss = Selection.Tables(z).Cell(ii, y).Range.Text Selection.Tables(z).Cell(ii, y).Range.Delete Selection.InsertFormula Formula:="=AVERAGE(LEFT)", NumberFormat:="" sss = Selection.Tables(z).Cell(ii, y).Range.Text Selection.Tables(z).Cell(ii, y).Range.Text = ss If ss <> sss Then Selection.Tables(z).Cell(ii, y).Range.Font.Color = wdColorRed Else Selection.Tables(z).Cell(ii, y).Range.Font.Color = wdColorBlack ' MsgBox (sss) End If Next ' çàïèñü èòîãà Selection.Tables(z).Rows(ii).Select ss = Selection.Tables(z).Cell(ii, y).Range.Text Selection.Tables(z).Cell(ii, y).Range.Delete Selection.InsertFormula Formula:="=SUM(ABOVE)", NumberFormat:="" sss = Selection.Tables(z).Cell(ii, y).Range.Text Selection.Tables(z).Cell(ii, y).Range.Text = ss If ss <> sss Then Selection.Tables(z).Cell(ii, y).Range.Font.Color = wdColorRed End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2008, 15:56 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
> Автор: ledirina > ой...спасибочки, а я вот так сделала! > > Dim ss, sss As String > Dim ii, y, z As Integer На будущее, после каждой переменной указывай As Тип. Иначе у тебя ss, ii, y имеют тип Variant, sss - String, a z - Integer > ss = Selection.Tables(z).Cell(ii, y).Range.Text > Selection.Tables(z).Cell(ii, y).Range.Delete > Selection.InsertFormula Formula:="=AVERAGE(LEFT)", NumberFormat:="" > sss = Selection.Tables(z).Cell(ii, y).Range.Text Можно и так :) З.Ы. Нажми "Цитировать" на моем сообщении и посмотри теги оформления кода -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2008, 16:22 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос > Автор: ledirina > ой...спасибочки, а я вот так сделала! > > Dim ss, sss As String > Dim ii, y, z As Integer На будущее, после каждой переменной указывай As Тип. Иначе у тебя ss, ii, y имеют тип Variant, sss - String, a z - Integer > ss = Selection.Tables(z).Cell(ii, y).Range.Text > Selection.Tables(z).Cell(ii, y).Range.Delete > Selection.InsertFormula Formula:="=AVERAGE(LEFT)", NumberFormat:="" > sss = Selection.Tables(z).Cell(ii, y).Range.Text Можно и так :) З.Ы. Нажми "Цитировать" на моем сообщении и посмотри теги оформления кода -- С уважением Горбонос Игорь Леонидович Дык, я ж описала свои переменные...почему ж у меня SS Variant А я вот бьюсь теперь, после значения в ячейку, добавляет абзац...Таблица плывет Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2008, 16:29 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
> Автор: ledirina > > Дык, я ж описала свои переменные...почему ж у меня SS Variant Потому что она будет String только в таком случае: Dim ss As String, sss As String Dim ii As Integer, y As Integer, z As Integer а в твоем случае тип указан только для последней переменной в списке, а для первых используется "умолчательный тип данных" - Variant > А я вот бьюсь теперь, после значения в ячейку, добавляет абзац...Таблица > плывет Это потому, что Selection.Tables(z).Cell(ii, y).Range.Text в значении уже есть один символ абзаца, при удалении символ абзаца все равно остается, а при вставке их получается уже 2 символа. Попробуй или использовать Val или отрезать последний символ > > Переборщила с цитированием ;)) -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2008, 17:18 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
Selection.InsertFormula Formula:="=SUM(ABOVE)-4", NumberFormat:="0,00" а можно ли значение суммы записать в переменную? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 11:07 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
> Автор: ledirina > Selection.InsertFormula Formula:="=SUM(ABOVE)-4", NumberFormat:="0,00" > а можно ли значение суммы записать в переменную? Наверное нельзя, а ты не пробовала формулу присваивать не через Selection.InsertFormula, а использовать: [src vba]ss = Selection.Tables(z).Cell(ii, y).Range.Text Selection.Tables(z).Cell(ii, y)).Formula Formula:="=AVERAGE(LEFT)", NumberFormat:="" '.Range.Delete 'Selection.InsertFormula Formula:="=AVERAGE(LEFT)", NumberFormat:="" sss = Selection.Tables(z).Cell(ii, y).Range.Text[src] -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 11:55 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
да, спасибо...а я не додумалась, как можно вписать формулу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 16:46 |
|
||
|
Макрос
|
|||
|---|---|---|---|
|
#18+
> Автор: ledirina > Дык, я ж описала свои переменные...почему ж у меня SS Variant Кстати, вот статейка "Статья Оптимизация кода в Visual Basic", почитай и пусть перебродит. -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2008, 17:33 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=180&tid=2161874]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
58ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 404ms |

| 0 / 0 |
