【发布时间】:2017-06-12 19:00:59
【问题描述】:
我目前面临以下问题:
源数据目前如下:
Value#1 Value#2
10 AA
11 AA
12 AB
13 AD
1231 AA
125 AB
4312 AA
12314 AA
现在用户有多个用户表单文本框,他可以在其中定义各自的值在哪里:
- Textbox1 = 定义值的开始行
- Textbox2 = 值#1 的列
- Textbox3 = 值#2 的列
- Textbox4 = 值#2 中的条件
现在我想实现以下目标;用户应该指定他的值#1 在哪里(在 TextBox2 中),然后他应该定义可以在其中找到标准的列(TextBox3 中的 Values#2),然后他应该定义应该过滤哪些标准。
因此,如果他选择在 Textbox4 中键入“AB”,则以下内容必须出现在工作表的第一个可用列中:
Value#1 Value#2
12 AB
125 AB
我当前的代码看起来像这样,但我一直在更改它,但没有任何效果(语法错误)。我实际上确定语法的开头还不错(?),但我不知道如何用 vba 表达我希望他们将列中的值复制到另一个列中,如果条件匹配的话。在这里和其他地方有很多示例,但我找不到任何未预定义范围或值的示例。
Dim c as Range
If OptionButton1.Value = True Then 'also this only happens if the user decides that an Optionbutton is true
For Each c In Sheets ("Table") Range (TextBox3.Value & TextBox1.Value + 1 & ":" & TextBox3.Value & lastrow)
If cell.Value = TextBox4.Value Then
Range (TextBox2.Value & TextBox1.Value + 1 & ":" & TextBox2.Value & lastrow) c.copy c.Offset (, 1) 'syntax-error
End If
Next
End If
我对 VBA 和整个编程很陌生,找不到解决方案。
通过一些研究,我很确定解决这个问题的语法有点像“对于每个“x””等,但我从来没有找到用 TextBox 定义范围和值的东西。
【问题讨论】:
-
"...没有什么真正有效的。" ——会发生什么,为什么与你的预期不同?在您的帖子中添加此信息。
-
非常感谢您的建议。我希望我的编辑信息有所帮助。