用户表单中的全局变量不起作用

时间:2014-04-09 12:25:42

标签: excel-vba global-variables userform vba excel

我正在创建用户表单。用户表单相互连接 - 彼此使用信息。所以...我想创建一些全局变量来让我的生活更轻松:

Public nazwa_arkusza As String
Public skoroszyt As Workbooks
Public arkusz As Worksheet

它们是在Useform Klient_kraj 中编写的。 Edltuj Klient_kraj Userform中为Combobox。我想在不同的userform中执行 arkusz 变量,但我得到运行时错误:“对象不支持此方法”

Private Sub but_next_Click()

Dim Faktura As Range, faktury_range As Range
Dim LastRow As Integer

LastRow = Klient_kraj.skoroszyt.arkusz.Cells(Rows.Count, 1).End(xlUp).Row 'error line

Set faktury_range = skoroszyt.Range("A1:A" & LastRow)

(...)

end sub

Private Sub edytuj_Click()

Dim nazwa As String

nazwa_arkusza = kraj.List(kraj.ListIndex, 1) & " " & Mid(okres1.Value, 4, 2) & Mid(okres2.Value, 3, 3)

nazwa = "C:\1\" & klient.Text & ".xlsx"


'Jeżeli kraj nie wybrany = msgbox
If kraj.Value = "" Then

MsgBox ("Nie wybrałeś kraju")
Exit Sub:

Else

    If okres1.Value = "" Or okres2.Value = "" Then
    MsgBox ("Nie wybrałeś okresu rozliczeniowego")
    Exit Sub:
    End If

End If


'Jeżeli nie ma pliku - utwórz nowy
If Dir(nazwa) = "" Then
    Workbooks.Add(1).SaveAs Filename:="C:\1\" & klient.Text, FileFormat:=51
    Worksheets(1).Name = nazwa_arkusza

Else

'Jeżeli nie jest otwarty - otwórz
    On Error GoTo niema_pliku:
    If GetObject(, "Excel.Application").Workbooks(Klient_kraj.klient.Text & ".xlsx") Is Nothing Then
    Workbooks.Open Filename:="C:\1\" & klient.Text & ".xlsx"

    Else
    Workbooks(Klient_kraj.klient.Text).Activate

    End If

End If

Set skoroszyt = Workbooks(Klient_kraj.klient.Text & ".xlsx")

'Jeżeli arkusz nie istnieje - utwórz; istnieje - aktywuj
On Error GoTo niema_arkusza:
If skoroszyt.Worksheets(nazwa_arkusza).Name = "" Then

Else
skoroszyt.Worksheets(nazwa_arkusza).Activate

End If

On Error GoTo 0
Set arkusz = Sheets(nazwa_arkusza)
Application.Windows(klient.Text & ".xlsx").Visible = False
Faktura.Show

niema_pliku:
If Err.Number = 9 Then
Resume Next
End If

niema_arkusza:
If Err.Number = 9 Then
skoroszyt.Worksheets.Add.Name = nazwa_arkusza
skoroszyt.Worksheets(nazwa_arkusza).Activate
Resume Next
End If

End Sub

此变量也将用于不同的用户形式。

我做错了什么?

0 个答案:

没有答案