|
После
|
|||
---|---|---|---|
#18+
Здравствуйте, уважаемые гуру. У нас возникла проблема по защите данных в excel-ой форме. После заполнения данными в форме (VFP 9) необходимо вначале закрыть доступ ко всем ячейкам общей книги, состоящей из 2 листов, а затем дать доступ на корректировку отдельныx ячеек. Закрытие всех ячеек на корректировку: .Cells.Select() .Selection.Locked=.t. * Разрешение корректировки данных ячеек: .Range("DK4:DK21").Select .Selection.Locked=.f. Данные команды на одном листе общей книге, а на втором листе не срабатывают. Помогите советом, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:10 |
|
После
|
|||
---|---|---|---|
#18+
AkIg, Попробуй явно переключиться на второй лист. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:31 |
|
После
|
|||
---|---|---|---|
#18+
Спасибо glamis, но как мне кажется, я явно переключаюсь: With LoExcel .WorkBooks.Open("akt_spis.xls") SELECT fil_kom GO top NOTE выборка pole=............................ Select adr go top ................................................. .Range("A2").Value=skl+r .Range("DH6").Value=dat .Range("BP7").Value=nd .Range("CB8").Value=dat_raz .Range("U9").Value=ALLTRIM(pole) str_1=16 str_2=4 isum1=0 SCAN .Range("A"+Allt(Str(str_1))).Value=kss .Range("H"+Allt(Str(str_1))).Value=oss .Range("O"+Allt(Str(str_1))).Value=naim1 .Range("BD"+Allt(Str(str_1))).Value=km .Range("BM"+Allt(Str(str_1))).Value=kei .Range("BR"+Allt(Str(str_1))).Value=q .Range("CG"+Allt(Str(str_1))).Value=cn .Range("CV"+Allt(Str(str_1))).Value=sum_r .Range("EE"+Allt(Str(str_1))).Value=knu str_1=str_1+1 isum1=isum1+sum_r IF naim2#SPACE(15) if str_1=39 .Sheets("Лист2").select() str_2=str_1 str_1=4 endif .Range("O"+Allt(Str(str_1))).Value=naim2 str_1=str_1+1 ENDIF if str_1=39 .Sheets("Лист2").select() str_2=str_1 str_1=4 ENDIF IF str_2=39 .and. str_1=22 EXIT endif ENDSCAN IF str_2#39 .Sheets("Лист2").select() endif .Range("CV22").Value=isum1 isum1=0 SELECT fil_kom GO top NOTE присвоение переменных NOTE .Range("....").Value= NOTE ............................ .Cells.Select() .Selection.Locked=.t. .Range("DK4:DK21").Select .Selection.Locked=.f. .Range("X26").Select .Selection.Locked=.f. .Range("BS26").Select .Selection.Locked=.f. .Range("X28").Select .Selection.Locked=.f. .Range("BS28").Select .Selection.Locked=.f. .Range("X30").Select .Selection.Locked=.f. .Range("BS30").Select .Selection.Locked=.f. .Range("X32").Select .Selection.Locked=.f. .Range("BS32").Select .Selection.Locked=.f. .Range("X34").Select .Selection.Locked=.f. .Range("BS34").Select .Selection.Locked=.f. .Range("X36").Select .Selection.Locked=.f. .Range("BS36").Select .Selection.Locked=.f. .Range("AF39").Select .Selection.Locked=.f. .Range("BG42").Select .Selection.Locked=.f. .Sheets("Лист1").select() .Range("CT4").Select .Selection.Locked=.f. .Range("DH5").Select .Selection.Locked=.f. .Range("U9").Select .Selection.Locked=.f. .Range("DK16:DK39").Select .Selection.Locked=.f. .ActiveSheet.Protect("pro_spis",.t.,.t.,.t.) Endif .ActiveWorkbook.SaveAs("&fil_v",-4143) LoExcel.Visible= .T. Endwith ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 14:58 |
|
После
|
|||
---|---|---|---|
#18+
AkIg, With LoExcel .WorkBooks.Open("akt_spis.xls") SELECT fil_kom GO top NOTE выборка pole=............................ Select adr go top ................................................. .Range("A2").Value=skl+r .Range("DH6").Value=dat .Range("BP7").Value=nd .Range("CB8").Value=dat_raz .Range("U9").Value=ALLTRIM(pole) str_1=16 str_2=4 isum1=0 SCAN WHILE !(str_2=39 .and. str_1=22) .Range("A"+Allt(Str(str_1))).Value=kss .Range("H"+Allt(Str(str_1))).Value=oss .Range("O"+Allt(Str(str_1))).Value=naim1 .Range("BD"+Allt(Str(str_1))).Value=km .Range("BM"+Allt(Str(str_1))).Value=kei .Range("BR"+Allt(Str(str_1))).Value=q .Range("CG"+Allt(Str(str_1))).Value=cn .Range("CV"+Allt(Str(str_1))).Value=sum_r .Range("EE"+Allt(Str(str_1))).Value=knu str_1=str_1+1 isum1=isum1+sum_r * * В этом месте подозрительно: если naim2 # spac(15) и str_1 = 39, то * Может так лучше? if str_1=39 .Sheets("Лист2").select() str_2=str_1 str_1=4 endif IF naim2 # SPACE(15) .Range("O"+Allt(Str(str_1))).Value=naim2 str_1=str_1+1 ENDIF ENDSCAN IF str_2#39 .Sheets("Лист2").select() endif .Range("CV22").Value=isum1 isum1=0 SELECT fil_kom GO top NOTE присвоение переменных NOTE .Range("....").Value= NOTE ............................ * * Не факт что в этом месте текущий лист - Лист2, а в других местах явного перехода не видно. * .Cells.Select() .Selection.Locked=.t. =Mylock("DK4:DK21,X26,BS26,X28,BS28,X30,BS30,X32,BS32,X34,BS34,X36,BS36,AF39,BG42" .Sheets("Лист1").select() =Mylock("CT4,DH5,U9,DK16:DK39" .ActiveSheet.Protect("pro_spis",.t.,.t.,.t.) Endif && лишний endif?????? .ActiveWorkbook.SaveAs("&fil_v",-4143) LoExcel.Visible= .T. ENDWITH ******************************************************************** Proc MyLock PARAMETERS __str _str=strt(__str+',', ',,', ',') DO WHILE !EMPTY(_str) i=AT(',',_str) _s1=LEFT(_str, i-1) _str=SUBSTR(_str, i+1) LoExcel.Range(_s1).Select LoExcel.Selection.Locked=.t. Endd ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:57 |
|
|
start [/forum/topic.php?fid=41&msg=35996785&tid=1586427]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 148ms |
0 / 0 |