-1

Мне нужна помощь с этим, пожалуйста.

У меня есть рабочая книга ввода, в которую вводятся данные о продукте, и выходная рабочая книга (отчет), в которой эти данные копируются в одну строку с помощью макросов vba.

Дело в том, что мне нужно использовать это приложение на 2 разных компьютерах в одной сети. Я хочу, чтобы оба компьютера использовали независимые рабочие книги ввода и могли копировать входные данные в одну рабочую книгу (отчет).

Другими словами, я хочу синхронизировать эту рабочую книгу между двумя компьютерами, чтобы она могла показывать мне данные, введенные обоими компьютерами.

Это вообще возможно? Я новичок в этом, я даже не знаю, с чего начать, поэтому любые предложения или советы приветствуются. Заранее спасибо..

Редактировать: это код, который мне удалось написать. Примите во внимание, что я новичок в кодировании lmao, я уверен, что он не идеален, но работает нормально.

Sub GrabarAbono()

Dim NumAnticipo As Long
Dim Fecha As Date
Dim Cedula As Long
Dim Nombre As String
Dim Total As Double
Dim UltimaFila As Long

Dim Anticipos As Range
Set Anticipos = Worksheets("Anticipo").Range("A7", Range("C6").End(xlDown))

UltimaFila = Worksheets("Reporte Ant.").Range("A" & Rows.Count).End(xlUp).Row
NumAnticipo = Worksheets("Anticipo").Range("B1").Value
Fecha = Worksheets("Anticipo").Range("B2").Value
Cedula = Worksheets("Anticipo").Range("B3").Value
Nombre = Worksheets("Anticipo").Range("B4").Value
Total = Worksheets("Anticipo").Range("C" & Rows.Count).End(xlUp).Value

'Imprimir
Worksheets("Anticipo").PrintOut Preview:=True


'Transferir Datos
Anticipos.Copy (Worksheets("Reporte Ant.").Range("E" & Rows.Count).End(xlUp).Offset(1))

Worksheets("Reporte Ant.").Activate

Range("E" & UltimaFila).Offset(1).Select

Do Until ActiveCell.Value = ""

    Worksheets("Reporte Ant.").Range("A" & Rows.Count).End(xlUp).Offset(1) = NumAnticipo
    Worksheets("Reporte Ant.").Range("B" & Rows.Count).End(xlUp).Offset(1) = Fecha
    Worksheets("Reporte Ant.").Range("C" & Rows.Count).End(xlUp).Offset(1) = Cedula
    Worksheets("Reporte Ant.").Range("D" & Rows.Count).End(xlUp).Offset(1) = Nombre
    ActiveCell.Offset(1).Select
Loop

'Protect
Worksheets("Anticipo").Protect 
End Sub

1 ответ1

0

Чтобы использовать независимые входные рабочие книги и иметь возможность копировать входные данные в одну выходную рабочую книгу (отчет) по той же сети, выполните следующие действия:

Опция 1:

  • Сделайте папку доступной и сохраните в ней рабочую книгу INPUT.
  • Отредактируйте свой код VB и добавьте эту строку, чтобы открыть WB.

Workbooks.Open Filename:="DriveLetter:\Path\Filename.xlsm"

  • Этот код должен сопровождаться остальными процедурными строками.

Вариант 2:

Создайте этот макрос и сохраните как стандартный модуль:

Private Sub RunfromServer()

Dim wb As Workbook
Dim MyFile As String
Dim MyPath As String
MyPath = MyPath = "\\MYServer\ShareFolder\My Folder\"

MyFile = Dir("Filename.Xlsm")


Do While MyFile <> ""
Set wb = Workbooks.Open(MyPath & MyFile)


*Your code here*


  wb.Close SaveChanges:=True
  MyFile = Dir
Loop

 End Sub
  • Сделайте столько копий вашего VBA(макроса), сколько вам нужно, и запустите его с разных компьютеров.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .