Макрос Excel vs OpenOffice

Автор castromen, 26 июля 2012, 22:41

0 Пользователи и 1 гость просматривают эту тему.

castromen

Доброе время суток.
Помогите пожалуйста переделать макрос под OpenOffice

Макрос в листе 2

Private Sub Worksheet_Change(ByVal Target As Range)
Dim good, tmparr, pos%
If Intersect(Target, Range("B2:B100")) Is Nothing Or Target.Rows.Count > 1 Then Exit Sub
If Target.Value = "" Then UsedRange.Rows(Target.Row).Offset(, 2).ClearContents: Exit Sub
Application.EnableEvents = False
good = Split(Trim$(Target)): Target(1, 8) = ""
If UBound(good) Then Target(1, 8) = good(1)
pos = InStr(1, basatxt, good(0), 1)
If pos Then
   tmparr = Split(Mid$(Replace(basatxt, vbNewLine, "|"), pos + 1), "|")
   Target(1, 2) = tmparr(1)
   Target(1, 3) = tmparr(2)
   Target(1, 7) = tmparr(3)
   Target(1, 11) = tmparr(4)
   Target(1, 12) = tmparr(5)
   Target(1, 13) = tmparr(6)
   Target(1, 17) = tmparr(7)
   Target(1, 18) = tmparr(8)
   Target(1, 19) = tmparr(9)
   Target(1, 20) = tmparr(10)
   Target(1, 21) = tmparr(11)
   Target(1, 22) = tmparr(12)
   Target(1, 23) = tmparr(13)
   Target(1, 24) = tmparr(14)
   Target(1, 25) = tmparr(15)
   Target(1, 26) = tmparr(16)
   Target(1, 27) = tmparr(17) & Target(1, 8)
   Target(1, 34) = tmparr(18)
   Target(1, 37) = tmparr(19)
   Target(1, 38) = tmparr(20)
   Target(1, 39) = tmparr(21)
   Target(1, 40) = tmparr(22)
Else
   MsgBox Target & " in basa.txt not found!", vbExclamation
End If
If brandtxt <> "" Then
   With Target(1, 9).Validation
       .Delete
       .Add Type:=xlValidateList, Formula1:="=Brand"
   End With
End If
With Target(1, 14).Resize(, 2)
   .Value = Now
   .NumberFormat = "yyyy-mm-dd hh:mm:ss"
End With
With Target(1, 16)
   .Value = Now
   .NumberFormat = "yyyy-mm-dd"
End With
Cells(Target.Row, "AC").Resize(, 5).FormulaR1C1 = "=RC2 & ""  "" & RC10"
Application.EnableEvents = True
End Sub


Макрос "эта книга"

Const basa$ = "basa.txt", brand$ = "brand.txt"
Private Sub Workbook_Open()
Dim txtfile, Path$, fso As Object
Set fso = CreateObject("scripting.filesystemobject")
Path = ThisWorkbook.Path & "\"
For Each txtfile In Array(basa, brand)
   If Not fso.fileExists(Path & txtfile) Then MsgBox "File " & txtfile & " not found!", vbExclamation: Exit Sub
Next
With fso.OpenTextFile(Path & basa)
   basatxt = .ReadAll
   .Close
End With
With fso.OpenTextFile(Path & brand)
   brandtxt = Replace(.ReadAll, vbNewLine, ",")
   .Close
End With
End Sub

Макрос "Модуль1"
Public basatxt$, brandtxt$


Заранее спасибо!!!

ALexey7ov

В VBA не разбираюсь, опиши конкретно и детально, что есть и что нужно получить?