小编Mat*_*don的帖子

你怎么做这个呢?

我正在尝试检查不同值的范围,然后更改另一列中的值,但每次我这样做时都会错误地说明:

没有If的其他

For i = 1 To 3000
    With Sheets("Order Approvers")
      If .Range("C" & i).Value = "No Approval Required" Then _
        .Range("F" & i).Value = ""
      'Else <<< illegal here??
    End With
Next i
Run Code Online (Sandbox Code Playgroud)

excel vba

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

如何通过删除重复项并用 ; 分隔来获取一行并创建列表

我已经有一段时间没有使用宏了,所以请耐心等待。我真的很欣赏你的专业知识。

我正在尝试创建一个由“;”分隔的范围内的唯一值列表。但不幸的是,我没有足够强大的知识基础来执行此操作。

目前我使用这个系统:选择范围(在本例中我们使用 A2:A100)。复制并粘贴到新工作表中,因为我不想破坏原始工作表。从列表中删除重复项。复制并粘贴为转置以使列表排成一行。然后运行这个宏

Sub insert_column_every_other()
For colx = 2 To 30 Step 2
Columns(colx).Insert Shift:=xlToRight
Next
End Sub
Run Code Online (Sandbox Code Playgroud)

然后选择范围并替换特殊,用 ; 替换空格。然后使用 CONCAT 生成所有用 ; 分隔的单元格的列表。

这显然是无效的,必须有更好的方法!

我希望宏只读取原始工作表中的 A2:A100 列表,然后创建由“;”分隔的唯一单元格值的列表。如果可能的话,我也希望在 MSGBOX 中弹出此信息。

excel vba

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

是否可以在功能之外创建和设置VBA词典?

我正在Excel VBA中创建几个需要使用3个词典的自定义函数。

这些字典一旦设置就不会更改。

现在,每个字典都在每个函数中创建。

我希望清理它,设置一次字典,然后在函数中引用它。

不幸的是,我似乎找不到有关此主题的任何文档。

excel vba excel-formula excel-2016

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

Excel VBA代码,公式和函数无法正常工作

我有一个使用过的excel公式:

=IFNA(LEFT(INDIRECT(ADDRESS(3,MATCH("Target Ship*",Ed!1:1,0),,,"Ed")),
 FIND(" ",INDIRECT(ADDRESS(3,MATCH("Target Ship*",Ed!1:1,0),,,"Ed")))-1),"")
Run Code Online (Sandbox Code Playgroud)

我正在尝试使其在VBA中工作,并具有提取Sheet2名称的功能,但是使用下面的代码会引发错误

“编译错误:语法错误”

Worksheets(1).Cells(l + i * 2 - 2, j).Formula = "=IFNA(LEFT(INDIRECT(ADDRESS(3,MATCH(""Target Ship*"","&shtName&"!1:1,0),,,""&shtName&"")),FIND("" "",INDIRECT(ADDRESS(3,MATCH(""Target Ship*"","&shtName&"!1:1,0),,,""&shtName&"")))-1),"""")"
Run Code Online (Sandbox Code Playgroud)

同样对于上面我的下面的代码不是从功能设置shtName。

shtName = sheetName(2)

Function sheetName(num As Integer) As String
    shtName = Sheets(num).Name
End Function
Run Code Online (Sandbox Code Playgroud)

excel vba excel-formula

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

VBA:将刚刚创建的图纸移动到工作簿中所有选项卡最右侧的代码

有谁知道在VBA中立即移动刚创建的选项卡到整个工作簿最右侧的选项卡的方法。我的代码现在的工作方式是将选项卡放在最左边(这是默认值)。任何帮助将非常感激。

Sub AddSheet()
Dim wb As Workbook: Set wb = ActiveWorkbook
Dim strName As String: strName = CStr(MaxSheetNumber(wb) + 1)
Dim ws As Worksheet
Set ws = wb.Worksheets.Add(Type:=xlWorksheet)
With ws
    .Name = strName
End With

'Line of code here that would immediately move the new tab "ws" to the furthest right position of all tabs in the workbook

End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba

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

VBA设置变量时如何处理错误?

我正在尝试制作一个宏来查看一个工作表中的标题,并查看另一个工作表中的标题以复制数据,但是并非所有的标题都在第二个工作表中,这导致了块变量未设置错误。我一直在尝试进行错误检查,以使其在为空时跳过该值,但它拒绝播放。TD和RawData是全局变量。我的代码如下:


Dim FromCol As Integer
Dim ToCol As Integer
Dim RawRows As Integer
Dim TDCols As Integer
Dim i As Integer
Dim element As Variant

'set variables
RawRows = (RawData.Cells.Find(What:="*", SearchDirection:=xlPrevious).Row) - 1
TDCols = TD.Cells(1, Columns.Count).End(xlToLeft).Column

Dim colArray(200) As String

For i = 2 To (TDCols + 1)
    colArray(i) = TD.Cells(1, i).Value
Next i

'Copy Data
For Each element In colArray
        FromCol = RawData.Range("1:1").Find(element, LookIn:=xlValues, lookat:=xlWhole).Column
        ToCol = TD.Range("1:1").Find(element, LookIn:=xlValues, lookat:=xlWhole).Column

        For i = 2 To (RawRows + 1) …
Run Code Online (Sandbox Code Playgroud)

excel vba

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

我应该在C#中使用什么数据结构?清单清单?锯齿状阵列?

假设我在卫生部工作,并编制了一份食物中毒顾客的投诉记录.我还有一个我所在城市的餐馆列表,这些餐馆被分配了一个5位数字.对于每个投诉,我都知道以下信息:

  • 餐厅的5位数身份证
  • 食物中毒受害者的姓名/地址/年龄
  • 投诉日期

我想将投诉与餐馆匹配,以便列表或数组或数据结构中的第一个元素是5位数ID.任何特定餐厅的其余数据结构将包含食物中毒受害者的姓名/地址/年龄,以及投诉日期.

现在请记住,一些餐馆会得到0个投诉而其他餐馆可能会得到多达50个.我不知道这个号码,因为我会通过投诉记录.我基本上想要将每个投诉分配给餐厅的数据结构以供进一步分析.这让我觉得我需要一个锯齿状的阵列......但有些人可能会说我需要一个列表列表.

c# data-structures

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

没有默认构造函数的C#Object初始值设定项

我正在尝试使用c#object initializer创建一个对象.但是该类已经有一个构造函数,根据需要有一个参数,我不需要默认的construcor,所以我没有提供一个.当类中有用户提供的构造函数时,编译器也不会提供默认构造函数.

现在当我尝试使用对象初始化程序创建此类的实例时出现问题:

public class Foo
{
    public int Data { get; set; }
    public Foo(int Data)
    {
        this.Data = Data;
    }
}
Run Code Online (Sandbox Code Playgroud)

我像这样实例化这个类:

 Foo f=new Foo { Data=10};
Run Code Online (Sandbox Code Playgroud)

现在我得到一个编译时错误:

"Foo不包含带0参数的构造函数"

我知道错误,这是因为缺少默认构造函数.当我不需要默认构造函数时,为什么我应该只使用对象初始化程序?所以我只是想知道,有没有其他方式(样式,语法)我可以使用这个对象初始化程序而不显式提供默认构造函数?

我检查了这个MSDN链接,它说如果你的类中有一个PRIVATE默认构造函数,你就不能使用对象初始化程序,但我这里没有私有的默认构造函数.

c# object-initializers

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

将法语日期转换为英语日期 C#

我有包含法语日期的对象,我想将其转换为英语日期 Exp: from 21/01/1990 00:00:00 to 1990-01-21 00:00:00 这是我的代码来转换日期但没有'不起作用,因为输出是21/01/1990 00:00:00,这意味着它没有转换日期。

 if (obj.DATE_OPTIN.Equals("00/00/0000 00:00"))
      obj.DATE_OPTIN = Convert.ToDateTime(obj.DATE_OPTIN_ORGANISATEUR).ToString("yyyy'-'MM'-'dd'T'HH':'mm'");
Run Code Online (Sandbox Code Playgroud)

其中DATE_OPTIN是字符串值。

c# datetime date-conversion

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