|
|
|
Как обрабатывать вставку новой строки в Excel
|
|||
|---|---|---|---|
|
#18+
Как обрабатывать вставку новой строки в Excel? Нужно отлавливать событие вставки новой строки на листе - и заполнять некоторые ее ячейки формулами. Чтоб избавить юзеров от постоянного копирования формул Ctrl+D - так как в строке не во всех ячейках формулы, и значения из предыдущей строки переносить не нужно (ламеры будут пропускать и оставлять же 100%). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 17:10:09 |
|
||
|
Как обрабатывать вставку новой строки в Excel
|
|||
|---|---|---|---|
|
#18+
Имхо никак лутше сделать свою кнопку для добавления строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 17:29:13 |
|
||
|
Как обрабатывать вставку новой строки в Excel
|
|||
|---|---|---|---|
|
#18+
И что нету события OnRoInsert или т.д. (как в Oracle) Есть же OnChange ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 17:49:10 |
|
||
|
Как обрабатывать вставку новой строки в Excel
|
|||
|---|---|---|---|
|
#18+
всё что есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 17:55:49 |
|
||
|
Как обрабатывать вставку новой строки в Excel
|
|||
|---|---|---|---|
|
#18+
Не густо Тогда прийдется наверно отслеживать изменения в области выделения и перечитывать одну ячейку (основную несущую нагрузку) или отслеживать изменение ее содержания. Когда в ней или даже области что-то меняют, то заполнять нужные ячейки формулами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 18:11:59 |
|
||
|
Как обрабатывать вставку новой строки в Excel
|
|||
|---|---|---|---|
|
#18+
Ну, к примеру так. Ячейки с формулами покрашены, на листе есть диапазоны, где строки добавлять можно. Строку, идущую за диапазоном, красим в серый цвет ColorIndex-15. Option Base 1 Dim CellValue(1 To 2) As Integer Dim Stz As String Dim SetlName As String Dim CellKoord() As Long Private Sub Worksheet_sELECTIONChange(ByVal Target As Range) If Range("B" + Trim(CStr(Target.Row))).Interior.ColorIndex = 40 Then Answ = MsgBox("Õîòèòå äîáàâèòü ñòðîêó?", vbYesNo) If Answ = vbYes Then ActiveSheet.Unprotect Password:="92RIhjZ" Target.Select Target.EntireRow.Insert Rows(Trim(CStr(Target.Row - 1)) + ":" + Trim(CStr(Target.Row - 1))).Select Selection.Locked = False Selection.FormulaHidden = False Range("g" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("G" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare) Range("i" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("I" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare) ActiveSheet.Columns("C").Hidden = True ActiveSheet.Protect Password:="92RIhjZ" ActiveWorkbook.Protect Structure:=True, Windows:=False End If End If ' ActiveSheet.Columns("C").Hidden = True ActiveSheet.Protect Password:="92RIhjZ" ActiveWorkbook.Protect End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2006, 09:05:57 |
|
||
|
Как обрабатывать вставку новой строки в Excel
|
|||
|---|---|---|---|
|
#18+
121Ну, к примеру так. Ячейки с формулами покрашены, на листе есть диапазоны, где строки добавлять можно. Строку, идущую за диапазоном, красим в серый цвет ColorIndex-15. Option Base 1 Dim CellValue(1 To 2) As Integer Dim Stz As String Dim SetlName As String Dim CellKoord() As Long Private Sub Worksheet_sELECTIONChange(ByVal Target As Range) If Range("B" + Trim(CStr(Target.Row))).Interior.ColorIndex = 40 Then Answ = MsgBox("Õîòèòå äîáàâèòü ñòðîêó?", vbYesNo) If Answ = vbYes Then ActiveSheet.Unprotect Password:="92RIhjZ" Target.Select Target.EntireRow.Insert Rows(Trim(CStr(Target.Row - 1)) + ":" + Trim(CStr(Target.Row - 1))).Select Selection.Locked = False Selection.FormulaHidden = False Range("g" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("G" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare) Range("i" + Trim(CStr(Target.Row - 1))).Formula = Replace(expression:=CStr(Range("I" + Trim(CStr(Target.Row - 2))).Formula), Find:=Trim(CStr(CStr(Target.Row - 2))), Replace:=Trim(CStr(CStr(Target.Row))), Start:=1, Count:=-1, compare:=vbTextCompare) ActiveSheet.Columns("C").Hidden = True ActiveSheet.Protect Password:="92RIhjZ" ActiveWorkbook.Protect Structure:=True, Windows:=False End If End If ' ActiveSheet.Columns("C").Hidden = True ActiveSheet.Protect Password:="92RIhjZ" ActiveWorkbook.Protect End Sub Я пока в макросах не силен чтоб сразу понять все строки. Поэтому можно пару коментариев :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2006, 09:12:12 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=334&tid=2185038]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 391ms |

| 0 / 0 |
