2016-04-30 126 views
1
Sub DataInputBox() 

    Dim Id As Integer 
    Dim Name As String 
    Dim gender As String 

    Id = InputBox("Enter in your id") 
    Name = InputBox("Enter in your Name") 
    gender = InputBox("Enter in your gender") 

    Sheets(2).Range("a1").End(xlDown).Offset(1, 0).Value = Id 
    Sheets(2).Range("a1").End(xlDown).Offset(1, 1).Value = Name 
    Sheets(2).Range("a1").End(xlDown).Offset(1, 2).Value = gender 

End Sub 

我在執行excel時遇到上述代碼的運行時錯誤。錯誤: - 運行時錯誤'1004'

Error:- Run-time error '1004' Application-defined or object-defined error

+0

'msgbox(Sheets(2).Range(「a1」)。End(xlDown).Address)'告訴你什麼? – KekuSemau

+0

它會給出A列中的最後一個單元格地址。 –

+0

第二張工作表的A列中是否有任何內容?如果** xlDown **已將您帶到工作表的底部,則無法向下偏移1行。 – Jeeped

回答

1

你需要一些材料存在於一個Sheet2中。與開始:

enter image description here

我跑你的代碼(RAN無誤差)並獲得:

enter image description here

只要確保你有適當的板材合理的數據。

3

嘗試,因爲,

Sheets(2).Range("a" & rows.count).End(xlUP).Offset(1, 0).Value = Id 
Sheets(2).Range("a" & rows.count).End(xlUP).Offset(0, 1).Value = Name 
Sheets(2).Range("a" & rows.count).End(xlUP).Offset(0, 2).Value = gender 
+2

另請參閱http://stackoverflow.com/a/11169920/6216216爲什麼這比使用'End(xlDown)'更好。 – Leviathan

0

試試下面

Sheets(2).Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Value = ID 
Sheets(2).Range("B" & Range("A" & Rows.Count).End(xlUp).Row).Value = Name 
Sheets(2).Range("C" & Range("A" & Rows.Count).End(xlUp).Row).Value = gender 
0

只是爲了好玩第四方案:

Sub DataInputBox() 

    Dim Id As Long 
    Dim xName As String 
    Dim gender As String 

    Id = InputBox("Enter in your id") 
    xName = InputBox("Enter in your Name") 
    gender = InputBox("Enter in your gender") 

    Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 3).Value = Array(ID, xName, gender) 


End Sub 

但是,最好不要聲明Name作爲變量或VBA可能會搞砸,因爲每個對象都有它作爲屬性。 ;)

+0

您能否詳細解釋一下resize命令並給出簡單示例 –

+0

@saikrishna請查看[MSDN-help center](https://msdn.microsoft.com/en-us/library/office/ff193274.aspx)。如果你仍然沒有得到它,只要告訴我,我會盡力解釋它;) –

+0

謝謝... Reichel,我需要一個更多的例子PLZ ... –