我对VBA很陌生,想看看我是否正在完成我的任务。
我需要询问用户问题并使用VBA表单这样做,一旦他们输入答案,这将保存到指定单元格中的工作簿。
然而,他们需要为每个国家回答相同的问题,问题将保持不变,但值和单元格位置不同。有没有办法在不创建50个相同表单的情况下执行此操作?
我还应该提一下,数据将在他们回答之前的问题时预先填写,这样就无法添加到下一个空白行。
答案 0 :(得分:0)
如果您在A列的工作表中列出了国家/地区。
Sub PostAnswer(Country as string)
Dim lrow As Long
Dim ws As Excel.Worksheet
Set ws = Worksheets("Sheet1")
lrow = 1
Do While lrow <= ws.UsedRange.Rows.count
'Check if this row is the current country
If ws.Range("A" & lrow).Value = Country Then
'Write the answers to the current row
ws.Range("B" & lrow).Value = SomeAnswer
ws.Range("C" & lrow).Value = SomeOtherPartOfTheAnswer
ws.Range("D" & lrow).Value = SomeOtherPartOfTheAnswer
Exit Do
End If
lrow = lrow + 1
Loop
End sub
我假设你有一个像&#34; Post Answer&#34;或表格上的东西。 在按钮单击事件中,调用上面的子项将其传递给当前国家/地区。
Private Sub CommandButton1_Click()
PostAnswer "Current Country"
End sub