私はこれについてしばらく頭を悩ませてきましたが、多くのGoogle検索を行った後、答えが見つかりませんでした. 私はこのようなものを書く方法を学んでいるので、これが私がすでに知っているべき基本的なものである場合は事前に申し訳ありません. 基本的に私がやっていることは、ユーザーフォームにスプレッドシートのデータを入力することです。ユーザーがコンボボックスから値を選択すると、対応するスプレッドシートのデータがフォームのテキストボックスに入力されます。ユーザーはこれらのテキストボックスを編集して変更を保存できますが、変更は保存されません。何らかの理由で、テキスト ボックス内のテキストが変更されているにもかかわらず、テキスト ボックスの値が元の値から変更されません。私のコードは以下に掲載されています。最初のブロックは、コンボ ボックスが変更されたときにテキスト ボックスを設定するために使用されるコードです。その部分は正常に機能します。
Private Sub PartToEdit_Change()
Dim lngDataRow As Long
lngDataRow = EditPartForm.PartToEdit.ListIndex + 1
EditPartForm.Customer.Value = Worksheets("Sheet3").Cells(lngDataRow, 2) 'customer name
EditPartForm.Color.Value = Worksheets("Sheet3").Cells(lngDataRow, 4) 'color
EditPartForm.PartNumber.Value = Worksheets("Sheet3").Cells(lngDataRow, 1) 'part number
EditPartForm.Desc.Value = Worksheets("Sheet3").Cells(lngDataRow, 3) 'description
EditPartForm.Step1.Value = Worksheets("Sheet3").Cells(lngDataRow, 5) 'step 1
EditPartForm.Step2.Value = Worksheets("Sheet3").Cells(lngDataRow, 6) 'step 2
EditPartForm.Step3.Value = Worksheets("Sheet3").Cells(lngDataRow, 7) 'step 3
EditPartForm.Step4.Value = Worksheets("Sheet3").Cells(lngDataRow, 8) 'step 4
EditPartForm.Step5.Value = Worksheets("Sheet3").Cells(lngDataRow, 9) 'step 5
EditPartForm.Step6.Value = Worksheets("Sheet3").Cells(lngDataRow, 10) 'step 6
EditPartForm.Step7.Value = Worksheets("Sheet3").Cells(lngDataRow, 11) 'step 7
EditPartForm.Step8.Value = Worksheets("Sheet3").Cells(lngDataRow, 12) 'step 8
EditPartForm.Step9.Value = Worksheets("Sheet3").Cells(lngDataRow, 13) 'step 9
EditPartForm.Step10.Value = Worksheets("Sheet3").Cells(lngDataRow, 14) 'step 10
EditPartForm.BlastTime.Value = Worksheets("Sheet3").Cells(lngDataRow, 15) 'blast time
EditPartForm.PrepTime.Value = Worksheets("Sheet3").Cells(lngDataRow, 16) 'prep time
EditPartForm.PaintTime.Value = Worksheets("Sheet3").Cells(lngDataRow, 17) 'paint time
EditPartForm.BakeTime.Value = Worksheets("Sheet3").Cells(lngDataRow, 18) 'bake time
EditPartForm.PartNotes.Value = Worksheets("Sheet3").Cells(lngDataRow, 19) 'special notes
EditPartForm.PicPath.Value = Worksheets("Sheet3").Cells(lngDataRow, 20) 'picture path
End Sub
Private Sub SavePartButton_Click()
Dim lngDataRow As Long
lngDataRow = EditPartForm.PartToEdit.ListIndex + 1
Sheets("Sheet3").Range("A" & lngDataRow).Value = EditPartForm.PartNumber.Text 'part number
Sheets("Sheet3").Range("B" & lngDataRow).Value = EditPartForm.Customer.Text 'customer
Sheets("Sheet3").Range("C" & lngDataRow).Value = EditPartForm.Desc.Text 'description
Sheets("Sheet3").Range("D" & lngDataRow).Value = EditPartForm.Color.Text 'color
Sheets("Sheet3").Range("E" & lngDataRow).Value = EditPartForm.Step1.Text 'step 1
Sheets("Sheet3").Range("F" & lngDataRow).Value = EditPartForm.Step2.Text 'step 2
Sheets("Sheet3").Range("G" & lngDataRow).Value = EditPartForm.Step3.Text 'step 3
Sheets("Sheet3").Range("H" & lngDataRow).Value = EditPartForm.Step4.Text 'step 4
Sheets("Sheet3").Range("I" & lngDataRow).Value = EditPartForm.Step5.Text 'step 5
Sheets("Sheet3").Range("J" & lngDataRow).Value = EditPartForm.Step6.Text 'step 6
Sheets("Sheet3").Range("K" & lngDataRow).Value = EditPartForm.Step7.Text 'step 7
Sheets("Sheet3").Range("L" & lngDataRow).Value = EditPartForm.Step8.Text 'step 8
Sheets("Sheet3").Range("M" & lngDataRow).Value = EditPartForm.Step9.Text 'step 9
Sheets("Sheet3").Range("N" & lngDataRow).Value = EditPartForm.Step10.Text 'step 10
Sheets("Sheet3").Range("O" & lngDataRow).Value = EditPartForm.BlastTime.Text 'blast time
Sheets("Sheet3").Range("P" & lngDataRow).Value = EditPartForm.PrepTime.Text 'prep time
Sheets("Sheet3").Range("Q" & lngDataRow).Value = EditPartForm.PaintTime.Text 'paint time
Sheets("Sheet3").Range("R" & lngDataRow).Value = EditPartForm.BakeTime.Text 'bake time
Sheets("Sheet3").Range("S" & lngDataRow).Value = EditPartForm.PartNotes.Text 'part notes
Sheets("Sheet3").Range("T" & lngDataRow).Value = EditPartForm.PicPath.Text 'picture path
Unload EditPartForm
End Sub
以下のコードのようなものを使用してデータを手動で変更すると、問題なく更新されます。
Sheets("Sheet3").Range("A" & lngDataRow).Value = "Some Value"
助けてください!
ありがとう!