小编L42*_*L42的帖子

在不改变参考表中的项目序列的情况下拉取数据

我想查找临时表中列出的值:

那么让我们说:

Create Table #mylist
(
eserial nvarchar(35) Collate SQL_Latin1_General_CP850_CI_AS,
refdate datetime
)

Insert Into #mylist (eserial, refdate) Values ('A', '2015-09-15')
Insert Into #mylist (eserial, refdate) Values ('B', '2015-09-14')
Insert Into #mylist (eserial, refdate) Values ('C', '2015-09-13')
Insert Into #mylist (eserial, refdate) Values ('D', '2015-09-12')
Run Code Online (Sandbox Code Playgroud)

我需要结果是Top 1小于参考日期的日期.
并且应该以与临时表中相同的顺序返回.

我尝试了什么:

Select
    lst.eserial,
    lst.refdate,
    app.CREATEDDATETIME,
From #mylist lst
Outer Apply 
    (Select Top 1 rec.CREATEDDATETIME, rec.ESERIAL, rec.ITEMID
     From TableSource rec
     Where lst.eserial=rec.ESERIAL And rec.CREATEDDATETIME<lst.refdate
     Order By rec.CREATEDDATETIME Desc
    ) As app …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008-r2

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

在打开的单元格中显示Excel帐户用户名

使用Office 2013,我试图插入VBA代码以自动输入员工姓名,因为它在任何Office产品的右上角显示在B2打开excel电子表格的单元格中.我正在使用的当前代码是

Sub Auto_Open()

    Range("B2").Value = " " & Application.UserName

End Sub
Run Code Online (Sandbox Code Playgroud)

但是,这只是使其显示"授权用户".
我究竟做错了什么?

在此输入图像描述

excel vba ms-office excel-vba

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

复制格式化文本并在Excel 2007中存储为单元格值

我有格式化的单元格,将一个小于或等于11个数字的字符串放入##### - #### - ##的格式.

如何将格式化的值和存储作为另一个单元格中的实际单元格值?

例如.

单元格A1的值为12345678,格式为显示00012-3456-78.我希望单元格B1的单元格值为00012-3456-78.

excel-2007 excel-formula

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

如何优化此UDF

我有这个UDF用于查找日期并根据条件返回值.
基本上只有两(2)个条件,无论是日期<还是>日期.
此外,我也使用内置的Excel函数,只是添加了一些条件.

Public Function CLOOKUP(lookup_value, table_array As Range, column_index As Long, _
                        rv_operator, reference_value, Optional range_lookup, _
                        Optional return_index) As Variant

Dim NT_array, S_array
Dim ORGLOOKUP, REFLOOKUP
Dim row_count As Long, row_less As Long

With Application.WorksheetFunction
    If column_index > 0 And column_index <= table_array.Columns.Count Then

        On Error Resume Next
        ORGLOOKUP = .VLookup(lookup_value, table_array, column_index, range_lookup)
        If Err.number <> 0 Then CLOOKUP = CVErr(xlErrNA): Exit Function
        On Error GoTo 0

        Select Case rv_operator
        Case …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-2010

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

如何追加或组合范围?

我正在使用Excel VBA进行应用程序,我需要从变量中的不同工作表中复制一些范围.
所有范围都具有相同的列数但行数不同.我在考虑制作一个矩阵.只需将每张Sheet中的UsedRange附加到另一张上......但没办法

For i = 1 To wbDataFile.Sheets.Count

    Set wsCPDataFile = wbDataFile.Sheets(wbDataFile.Sheets(i).Name)
    If Not DataRng Is Nothing Then
        Set DataRng=  DataRng (Append??)
    Else
    ' the first valid cell becomes rng2
        Set DataRng = wsCPDataFile.UsedRange
    End If

Next I
Data = DataRng
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

在VBA中启用字典对象

当我在Excel VBA中启动字典对象时,我发现了两种方法:

  1. 使用CreateObject("Scripting.Dictionary")(没有"Microsoft Scripting Runtime");
  2. 首先打开引用"Microsoft Scripting Runtime",然后使用 Dim dict As New Scripting.Dictionary

它们都可以在我的机器上运行.我想知道这两种方法有什么区别吗?

excel vba dictionary excel-vba

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

如何添加数组?

通过循环计算时,我在Excel中有以下问题:我需要一个变量(目标变量),它顺序存储每个循环完成后产生的结果(避免使用循环引用),如下所示:

'Let's call it "origin" variable in the worksheet
Origin Variable (50 x 50 array)
      1 2 4
      2 3 4
      2 2 3
'Let's call it "destination" variable in the worksheet
Destination Variable (50 x 50 array)
      1 1 1
      1 1 1
      1 1 1
Run Code Online (Sandbox Code Playgroud)

在每个循环之后,我需要宏来执行以下代码:

range("destination").value = range("destination").value + range("origin").value 
Run Code Online (Sandbox Code Playgroud)

这样在当前循环之后目标变量看起来像这样:

Destination Variable
      2 3 5
      3 4 5
      3 3 4
Run Code Online (Sandbox Code Playgroud)

但是,Excel不允许我执行上一个功能.
有没有人有答案如何解决这个问题?

arrays excel vba excel-vba

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

Excel - 在数组中查找值并返回相应列的内容

我试图在数组中找到一个值,然后返回相应列中特定行的值.

在下面的例子中,我需要知道雪佛兰所在的海湾:

    Column A        Column C    Column D    Column E
    Chevrolet       Bay 1       Bay 2       Bay 3
                    Toyota      Ford        Saturn
                    Honda       Chevrolet   Jaguar
                    Ferrari     Subaru      Lexus
                    Mitsubishi  Hundai      BMW
Run Code Online (Sandbox Code Playgroud)

我正在寻找阵列C2:E5中的雪佛兰.一旦确定雪佛兰在D列中,我需要它返回D1中的值.如果它在E列中,我需要它返回E1中的值.

任何帮助将不胜感激.非常感谢你提前.

excel excel-formula

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

在初始化时关闭表单会引发错误

我正在尝试制定更新特定工作表的标准化流程。除了我给他们的功能之外,我不想要用户控制。为此,我锁定了工作表,然后使用某些宏加载了表单。一种表单旨在从工作表中删除数据。它在编写和测试时运行良好,但我尝试更新它,以便如果您打开它而没有任何相关数据要删除,它会弹出一个对话框,然后使用卸载我来关闭表单。这会关闭表单,但 excel 会引发错误:

运行时错误“91”:未设置对象变量或块变量

该表单是从只有一行的模块加载的:

MyForm.Show
Run Code Online (Sandbox Code Playgroud)

这就是 excel 抛出错误的地方。在表单初始化时,组合框会根据工作表中的数据填充值。如果加载后组合框为空,则表单应该抛出对话框然后关闭。

If ComboBox.ListCount = 0 Then
    MsgBox "No Data"
    Unload Me
End If
Run Code Online (Sandbox Code Playgroud)

如何在不从模块中抛出错误的情况下执行负载检查?

excel vba

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

如何创建动态变量名VBA

我试图根据单元格中的值在VBA中创建动态数量的变量.基本上我最想得到的就像是Team1, Team2... to TeamX.任何帮助是极大的赞赏

Dim i, x As Integer
Set x = Range("J4").Value
Dim Team(1 To x) As String
Dim Manager(1 To x) As String
Range("A3").Select
For i = 1 To x
Dim Team(i) As Integer
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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