0

私は本当にVBAの完全な初心者です。

スプレッドシートにリストされている特定の日付に人が完了したタスクの数を更新するユーザー フォームを作成しようとしています。ユーザーフォームに 2 つのボタン (サブルーチンの条件として非表示と表示) があると想定しています。ところで、私は Mac で作業していますが、PC で使用するための VBA コーディングの影響があること、またはその逆であることはわかっています。

サンプルシートは次のとおりです。

ユーザーフォームとVBAで検索して更新したいサンプル、簡単なスプレッドシートテーブル

ユーザーフォームの例 (a) は次のとおりです。

ユーザーフォームでシートの人物と日付を検索し、適切なセルのタスク数を取得するユーザーフォームの最初の段階

議論のために、Greg が 5 月 7 日 (2013/05/07) に完了したタスクの数を更新または入力したいとします。

ユーザーフォームを次のように処理したいと思います。

人物と日付の入力:

ここに画像の説明を入力

次に、ボタンをクリックしてから 7 番目の Greg のタスク数を取得します。

ここに画像の説明を入力

ここで、Greg が 7 日に 6 つのタスクを完了したことを知っていることを入力したいので、2 番目のボタンをクリックします (現在は表示され、最初のボタンは非表示になっています)。

ここに画像の説明を入力

スプレッドシートの結果:

ここに画像の説明を入力

ここにコードを入力する必要がありますが、スキルとコードの完成度が不足しています。しかし、私は私が持っているものを入れます:

Option Explicit

'Subroutine when clicking the first ("find") button
Private Sub btnfind_Click()
    lbltasks.Vissible = True
    txttasks.Visible = True
    btnupdate.Visible = True
    btnfind.Visible = False

'Defining variables
    Dim pr01 As String
    Dim dt01 As Date
    Dim tsk01 As Integer

'Assigning variables to inputs
    pr01 = txtperson.Text
    dt01 = txtdate.Text
    tsk01 = txttask.Text

'Looking for Name in column "A"
    ' ? ? ?

'Looking for inut Date in row "1"
    ' ? ? ?

'Retrieving the existing number of tasks according to name and date
'and showing number in the 'tasks' text input box in the user form
     ' ? ? ?
End Sub

'Subroutine when clicking the Second ("update") button
Private Sub btnupdate_Click()

'Paste updated Number of tasks in appropriate cells according to name and date
'The new number of tasks should over write what was there previously
    ' ? ? ?

End Sub

事前にすべての助けに感謝します!

4

1 に答える 1