2016-07-26 4 views
0

Я хочу скопировать txt-лист из excel A на сервере, чтобы преуспеть B в клиенте, и мне нужно создать файл .exe. Этот код, который я выполнил на макросе excel xlsx. это сработало. Но когда я использую XLtoEXE.exe от http://orlando.mvps.org/XLtoEXEMore.asp для преобразования файла в exe. Затем я запускаю его снова в exe. Это не сработало. Пожалуйста, скажи мне почему? И как я могу решить эту проблему?Как скопировать лист с excel на сервере на клиента

Dim a As Workbook 
Dim b As Workbook 
Dim txt As String 


Sub Button1_Click() 
txt = InputBox("sheet name") 
MsgBox txt 
Set a = Workbooks.Open(Filename:="\\DESKTOP-E8QK413\Videos\target.xlsx.xlsx") 
Set b = Workbooks("book1.xlsx") 
a.Sheets(txt).Copy after:=b.Sheets(1) 
a.Close 

End Sub 

enter image description here

+0

В какой строке вы получаете свою ошибку? это 'Workbooks (" book1.xlsx ")' уже открыт? если нет, вам нужно сначала открыть его. если он открыт, тогда декларация должна быть 'Set b = Workbooks (" book1 ")' –

+0

любых обновлений? Ваша проблема решена? –

+0

Извините за поздний ответ. строка ошибки - 'a.Sheets (txt). Копировать после: = b.Sheets (1)'. этот код работает на book1.exe –

ответ

0

Я не знаю, почему вам нужен файл EXE. Код приведен в модуле в файле Excel с расширением .xlsm, скажем CopySheets.xlsm.

Добавить CommandButton в user_form (или, возможно, на одном из листов, если это проще), и иметь код ниже в модуле в этом файле.

Option Explicit 

Dim a As Workbook 
Dim b As Workbook 
Dim txt As String 
Dim sht As Worksheet 

Sub Button1_Click() 


Set a = Workbooks.Open("\\DESKTOP-E8QK413\Videos\target.xlsx.xlsx") 

' (Filename in brackets must have full path and .xlsx extension)' 
Set b = Workbooks.Open(AddWorkbookPath"Book1.xlsx") 

txt = InputBox("Select Sheet name to Copy") 
' loop through workbook a sheets and check is txt is found 
For Each sht In a.Sheets 
    ' sheet exists in workbook a 
    If txt = sht.Name Then 
     MsgBox "Sheet " & txt & " found in workbook " & a.Name 
     GoTo Proceed_Copy 
    End If 
Next sht 

' error message - sheet not found in worbook a 
MsgBox "Sheet " & txt & " NOT found in workbook " & a.Name 

' close both workbooks in case sheet name was not found 
a.Close 
b.Close 

End 

Proceed_Copy: 
a.Sheets(txt).Copy after:=b.Sheets(1) 
a.Close 
b.Close (xlSaveChanges) 

End Sub 
Смежные вопросы