2017-07-14 2 views
0

Je reçois l'objet requis erreur d'exécution en dessous du code à la ligne, j'ai vérifié les noms de feuille ils sont corrects, mais montrant toujours la même erreur Sheet1.Range ("A1"). Valeur = Date & "" & tempsobjet requis erreur d'exécution '424'

Private Sub CommandButton1_Click() 
Dim username As String 
Dim password As String 

username = TextBox1.Text 
password = TextBox2.Text 


Dim info 
info = IsWorkBookOpen("D:\TMS_Project\username-password.xlsx") 

If info = False Then 
Workbooks.Open ("D:\TMS_Project\username-password.xlsx") 
End If 

Dim x As Integer 
x = 2 
Do While Cells(x, 1).Value <> "" 
If Cells(x, 1).Value = username And Cells(x, 2).Value = password Then 
MsgBox "Welcome!" 
Sheet1.Range("A1").Value = Date & " " & Time 
Selection.NumberFormat = "m/d/yyyy h:mm AM/PM" 

UserForm1.Hide 
ActiveWorkbook.Close True 
End 
Else 
x = x + 1 
End If 

Loop 
MsgBox "Please check your username or password!" 
ActiveWorkbook.Close True 
TextBox1.Text = "" 
TextBox2.Text = "" 
TextBox1.SetFocus 


End Sub 
+0

c'est 'Sheet1' le' CodeName', pas nécessairement le nom de votre feuille, non? –

+0

Je pense que je l'ai résolu feuilles de calcul ("Sheet1"). Range ("A1"). Value = Date & "" & Time – Kittu

+0

@shai ce que vous avez dit est aussi juste..je vais essayer de cette façon – Kittu

Répondre

0

Lorsque vous utilisez Sheet1.Range("A1").Value, Sheet1 est en fait la propriété Worksheet.CodeName, lire ici sur MSDN.

Bien que je pense que vous vouliez utiliser la feuille de calcul, dont le nom est « Sheet1 », vous devez utiliser Worksheets("Sheet1").Range("A1").Value.

Si vous auriez défini et défini votre objet Worksheet, vous auriez pu le suivre.

J'utilise le code ci-dessous pour vérifier que personne n'a changé le nom de ma feuille (ou l'a supprimé).

Option Explicit 

' list of worksheet names inside Workbook - easy to modify here later 
Const ShtName    As String = "Sheet1" 

'==================================================================== 
Sub VerifySheetObject() 

Dim Sht As Worksheet 

On Error Resume Next 
Set Sht = ThisWorkbook.Worksheets(ShtName) 
On Error GoTo 0 
If Sht Is Nothing Then ' in case someone renamed the Sheet (or it doesn't exist) 
    MsgBox "Sheet has been renamed, it should be " & Chr(34) & ShtName & Chr(34), vbCritical 
    Exit Sub 
End If 

' your line here 
Sht.Range("A1").Value = Date & " " & Time 

End Sub 
0

Pour utiliser les variables pour vos feuilles utilisent:

Dim sht as Worksheet 
Set sht = Worksheets("Name") 

Si vous référenceurs beaucoup à ses feuilles de travail un must à utiliser, mais rend également beaucoup plus facile de changer plus tard.

+0

Je sais que, mais lorsque vous n'utilisez pas ou n'ouvrez pas plusieurs classeurs, ce n'est pas nécessaire. – UGP

+0

Shai Radao et UGP Merci pour votre clarification – Kittu