我正在尝试使用VBA将公式写入Excel中的单元格.我的问题是,当我;在公式中使用分号()时,我收到一个错误:
Run-time error 1004
我的宏如下:
Sub Jours_ouvres()
Dim Feuille_Document As String
Feuille_Document = "DOCUMENT"
Application.Worksheets(Feuille_Document).Range("F2").Formula = "=SUM(D2;E2)"
End Sub
Run Code Online (Sandbox Code Playgroud) 我已经测试了许多代码来检查工作表是否存在(基于名称),如果不存在则创建一个。其中一些循环所有工作表,有些引用工作表,如果创建错误意味着该工作表不存在。哪个是最合适 - 正统 - 更快的方式来完成这项任务?
目前我正在使用:
Option Explicit
Sub test()
Dim ws As Worksheet
Dim SheetName As String
Dim SheetExists As Boolean
SheetName = "Test"
SheetExists = False
With ThisWorkbook
'Check if the Sheet exists
For Each ws In .Worksheets
If ws.Name = SheetName Then
SheetExists = True
Exit For
End If
Next
If SheetExists = False Then
'If the sheet dont exists, create
.Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = SheetName
End If
End With
End Sub
Run Code Online (Sandbox Code Playgroud) 我试着:
我使用相同的字符串:
AmountI = Replace(Application.WorksheetFunction.Clean(Trim(.Cells(j, 9).Value)), " ", " ")
Run Code Online (Sandbox Code Playgroud)
我想知道这三个VBA函数是否有特定的顺序,或者订单在结果中没有任何作用.谢谢你的帮助!
我试图得到多个标准的总和:
从下图中可以看出,我设法在excel中使用SumProduct得到答案.当我尝试使用VBA获得与SumProduct相同的答案时,我会收到错误13类型不匹配.
图片:
有什么建议?
码:
Option Explicit
Sub test()
Dim Criteria1 As String, Criteria2 As String
Dim Lastrow As Long, Result As Double
Dim rng1 As Range, rng2 As Range, rng3 As Range
With ThisWorkbook.Worksheets("Sheet1")
Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set rng1 = .Range("A3:A" & Lastrow)
Set rng2 = .Range("C3:C" & Lastrow)
Set rng3 = .Range("K3:K" & Lastrow)
Criteria1 = "Get"
Criteria2 = "Yes"
Result = Application.Evaluate("SumProduct(--(rng1 = Criteria1),--(rng2 = Criteria2),--rng3))")
End With
End Sub
Run Code Online (Sandbox Code Playgroud) 我试图循环工作表并删除不需要的。问题是我想基于VBA编辑器(名称)进行循环和删除,但出现错误。循环工作完美。任何帮助将不胜感激。
码:
Sub Remove_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name = wsOriginal Or ws.Name = wsRecords Then
Else
ws.Delete
End If
Next ws
End Sub
Run Code Online (Sandbox Code Playgroud)
图片:
我正在使用以下代码基于cmbYear和cmbMonth计算月份的天数:
int days = DateTime.DaysInMonth(Convert.ToInt16(cmbYear.SelectedItem), Convert.ToDateTime("01-" + cmbMonth.SelectedItem + "-2011").Month);
Run Code Online (Sandbox Code Playgroud)
我试图使用for loop实现的是创建一个下拉列表,其中包括从1到int daysfor cmbDay组合框的所有数字。下面是我的代码,当我尝试导入代码的终点时会生成错误i = days;。在错误不能int类型隐式转换为布尔。
任何帮助将不胜感激。
for (int i = 1; i = days; i++)
{
}
Run Code Online (Sandbox Code Playgroud)