小编L42*_*L42的帖子

Excel VBA日期将减去一天

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)

excel vba excel-vba

2
推荐指数
1
解决办法
453
查看次数

循环遍历除少数之外的所有数字

我需要循环通过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 但据我所知,没有办法写出来.

excel vba excel-vba

2
推荐指数
2
解决办法
4306
查看次数

来自ADODB Connection的不完整记录集

我试图从包含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)

vba adodb recordset excel-vba excel-2013

2
推荐指数
1
解决办法
459
查看次数

在Excel中创建动态命名范围

我正在尝试创建一个命名范围,以用作数据验证下拉菜单的一部分.我是从表中创建的,但是,我只想在列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.

excel named-ranges

1
推荐指数
1
解决办法
316
查看次数

返回INDEX MATCH有多个匹配项时的最新日期

我有一个索引匹配公式,它通过一个列表并返回一个基于电子邮件地址的日期.我的问题是,如果有多个条目与该电子邮件地址匹配?我如何返回最近的日期?

例如,工作表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 excel-formula

1
推荐指数
1
解决办法
3万
查看次数

对于具有多个变量的循环

这是一个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)

excel vba excel-vba

1
推荐指数
1
解决办法
5905
查看次数