Benzer konularda bulduğum bir çözüm okudum ve uygulamam ancak durumumda hiçbir işe yaramadı.Excel - VBA: Sub'dan Userform'a geçişi değiştir
Modülümün bir alt biriminden bir kullanıcı formuna bir değişkeni geçmek istiyorum. "ProvinceSugg" adlı bir dizedir. Benim userform kodunda sonra
Public provinceSugg As String
Sub probaCity()
[...]
If province = "" And city <> "" Then
provinceSugg = sCurrent.Cells(p, db_column).Offset(0, 1).Value
UserForm2.Label1 = "Do you mean " & city & " in " & provinceSugg & " ?"
UserForm2.Label1.TextAlign = fmTextAlignCenter
UserForm2.Show
Else
End If
End Sub
Ve: İşte
ilgili benim kod parçasıdır
Private Sub userformBtn1_Click()
MsgBox provinceSugg
sMain.Range("J6").Value = provinceSugg
End Sub
benim programı çalıştırdığınızda:
1/ MsgBox'ta altımdan arandığımda gösterilen ildeSugg içeriğine sahibim (bu yüzden bir ilSugg var, boş bir değişken değil).
2/ Kullanıcı formundan çağrılan MsgBox boş (bu nedenle değeri başarısız oldu) ve "sMain.Range (" J6 ") çalışırken programım çöküyor. Value = provinceSugg" gibi bir şeyle "Error 424 Object Required" (böylece değişken kullanıcı formuna geçemedi).
Forumda bulduğum tüm öğeleri denedim (burada, bir başka değişkeni belirtmek için farklı bir yol var.
Yardımlarınız için şimdiden teşekkür ederiz!
Benim için iyi çalıştı. UserForm Initialisation - "provinceSugg" ile etkileşimde çalışan başka bir kod var mı? Çalışma kitabınızı gönderebilir misiniz (gerekirse, sanitize edilmiş)? – brettdj
@brettdj Bazı güncellemelerim var: button_click ("MsgBox provinceSugg sMain.Range (" J6 ").Value = provinceSugg), şimdi MsgBox'ta görüntülenen ilSugg içeriğim var ama yine de bir sonraki satır ve aynı hata için hiçbir şey (nesne gerekli/hata 424), bu yüzden değer geçilir ancak ikinci komutta okunamaz .. – Phalanx
Eğer "Sheets (x) .Range (" J6 ") 'yı deneyin. Value = provinceSugg'' '' '' '' '' ın pozisyonu '' 'pozisyonu bu işi yapar - Bence bu senin meselenizdir – brettdj