Private Sub cboMonth1_Change()
Dim rng As Range
Dim rngStart As Range
Dim rngEnd As Range
Dim dt As Worksheet
Dim strStart As String
Dim strEnd As String
Dim ICell As Range
Set dt = Worksheets("Sheet1")
If Me.cboMonth1.Value = "January" Then
Set rng = Range("J2")
ElseIf Me.cboMonth1.Value = "February" Then
Set rng = Range("AO2")
End If
If rng.MergeCells Then
Set rng = rng.MergeArea
Set rngStart = rng.Cells(1, 1)
Set rngEnd = rng.Cells(rng.Rows.Count, rng.Columns.Count)
strStart = Mid(rngStart.Address, 1, Len(rngStart.Address) - 1)
strEnd …Run Code Online (Sandbox Code Playgroud) 我需要循环通过i = 1到99,但我想跳过一些特定的i值.我想跳过的数字是41,83,87,91,92,93,98
我意识到我可以把所有的动作都嵌入到一个i <> 41或者i <> 83等等中.难道没有更简单的方法吗?也许指定一个变量来包含要跳过的值CSL并使用Split?我不知道我的大脑不起作用.请帮忙.
For i = 1 To 99
If i <> 41 And i <> 83 And i <> 87 And i <> 91 _
And i <> 92 And i <> 93 And i <> 98 Then
'do stuff
End If
Next i
Run Code Online (Sandbox Code Playgroud)
宁愿设置一个变量,如:
not_use = "41,83,87,91,92,93,98"
Run Code Online (Sandbox Code Playgroud)
然后有一些For i = 1 To 99除非,not_use 但据我所知,没有办法写出来.
我试图从包含80,000多行的工作表中检索数据并将这些值打印到工作表中,但是当我创建记录集并查看其记录数时,它只包含16,492条记录.
我是ADODB连接的新手,所以我很难解决问题所在.
这是我的代码:
Sub testing()
On Error Resume Next
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1
Dim objCon As New ADODB.Connection
Dim recSet As ADODB.Recordset
Set objCon = CreateObject("ADODB.Connection")
Set recSet = CreateObject("ADODB.Recordset")
objCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Users\nschneider\Desktop\Data Pulls_FY08 to Present_Companies 10, 20, 30, 40.xlsx;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
recSet.Open "Select * FROM [Data$]", _
objCon, adOpenStatic, adLockOptimistic, adCmdText
If Not recSet.EOF Then
Sheets(2).Range("A2").CopyFromRecordset recSet
End If
' Do Until objRecordset.EOF
' Wscript.Echo …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个命名范围,以用作数据验证下拉菜单的一部分.我是从表中创建的,但是,我只想在列C中显示符合特定条件(真或假)的A值.但是,C列中的值可以更改,所以我需要命名范围能够改变.
我的表看起来像这样:
A B C
1 .. 1
2 .. 0
3 .. 1
4 .. 0
5 .. 1
6 .. 1
我希望命名范围选择A的值,其中c为1 - 或者在此示例中为1,3,5,6.
我有一个索引匹配公式,它通过一个列表并返回一个基于电子邮件地址的日期.我的问题是,如果有多个条目与该电子邮件地址匹配?我如何返回最近的日期?
例如,工作表1包含所有数据
A B C email ID date
工作表2有一个我正在寻找信息的特定电子邮件地址列表
A B email date
我在工作表2的B栏中的公式是这样的:
index(worksheet1 C:C,match(worksheet2 A1, worksheet 1 A:A,false))
基本上说你在工作表1的A列中找到A1中的电子邮件地址,在B1中返回工作表1中该行列中的值.
问题是我们可以多次列出相同的电子邮件地址,所以我正在寻找要返回的最新日期,而不是它找到的第一个日期.
谢谢西蒙
这是一个excel vba子程序示例.我有两列数据,范围v和范围c- 我如何将每个单元格行的值与并行行调用值连接起来.
理想情况下,我想要做的就是这样
For Each c,b In v,bb
...
next c,b
Run Code Online (Sandbox Code Playgroud)
请允许我进一步解释:单元格G2值仅与J2相关,而G3与J3相关
G2 value = Blue
J2 value = Spaghetti
Run Code Online (Sandbox Code Playgroud)
我试图用一个for循环返回"Blue Spaghetti"?
G2 value = Red
J2 value = Noodles
Run Code Online (Sandbox Code Playgroud)
我试图用一个for循环返回"Red Noodles"?
Dim c As Variant
Dim b As Variant
Dim v As Range
Dim bb As Range
Dim brow As Long
Dim vrow as long
Set v = ActiveSheet.Range("G:G")
vrow = v(v.Cells.Count).End(xlUp).Row
Set v = Range(v(2), v(brow))
Set bb = ActiveSheet.Range("J:J")
brow = bb(bb.Cells.Count).End(xlUp).Row …Run Code Online (Sandbox Code Playgroud)