2017-06-22 12 views
0

ID番号を使用してデータを表示できるユーザーフォームを作成しようとしています。テキストボックスを使用して、入力欄のほとんどの部分を入力欄のように入力します。

テキストボックスを参照して選択し、それを参照として使用して、時間とコメントをシートに記入しようとしています。私は、Find関数に "txtID"を入れないと思います。ここで

は、私のコードの例です:

Sheet1.Select 
Columns("A:A").Select 
Selection.Find(What:="txtID", After:=ActiveCell, LookIn:= _ 
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
xlNext, MatchCase:=False, SearchFormat:=False).Activate 
ActiveCell.Select 

ActiveCell.Offset(0, 8).Value = txtTime2 
ActiveCell.Offset(0, 9).Value = txtComment2 
+1

あなたのシートを修飾し、学ぶために、マクロレコーダーを使用して停止する必要があります...から学びます? –

+0

私は大学で数年前に授業を受けました。ここではwww.onlinepclearning.com、残りは私ができる限り即興しています。 Matlabは本当に私が経験豊富な人ではなく、専門家ではありませんが、matlabでは良いコードをまとめることができます。 – Mdaox

答えて

0

最初の問題はSelection.Find(何:=「txtID」)ということで、列Aに単語txtIDのために検索し、私はあなたがしたいと思いますフォーム上のtxtIDという名前のテキストボックス内のデータを検索します。以下を試してください。異なる場合は、UserForm1をフォームの名前に変更します。

Dim ID 
ID = UserForm1.Controls("txtID").Value 

Sheet1.Select 
Columns("A:A").Select 

Selection.Find(What:=ID, After:=ActiveCell, LookIn:= _ 
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
xlNext, MatchCase:=False, SearchFormat:=False).Activate 
ActiveCell.Select 

ActiveCell.Offset(0, 8).Value = "=txtTime2" 
ActiveCell.Offset(0, 9).Value = "=txtComment2" 

フォームには、txtIDのデータが既にロードされている必要があります。あなたのコードはユーザーフォームか他のモジュールですか?

第2の問題は、txtTime2とtxtComment2という名前のセルのデータを参照するオフセットセルに式を格納する必要があることです。以下のコードは、あなたが望むことをする必要があります。 を横に、ここで、ウェブサイトは、あなたがしようとしているもの - 彼らは信頼できないとして、あなたは `SELECT`または` activate`を使用しないでください

ActiveCell.Offset(0, 8).Value = "=txtTime2" 
ActiveCell.Offset(0, 9).Value = "=txtComment2" 
+0

列AはID番号がある唯一の列であるため、その列を検索するだけで意味があると仮定しました。そして、txtIDは、ユーザーフォーム内のtexboxの名前で、ユーザーフォームが自動的に見つけて、対応するデータを第8列と第9列に記入するようにします。また、助けてくれてありがとう! – Mdaox

関連する問題