我错误地运行了倒数第二次db迁移错误,但最后一次迁移没问题.现在我想回滚我的倒数第二次迁移而不恢复上次迁移.请与我和其他人分享您的知识.
任何人都可以告诉我为什么我会在以下代码中收到1004错误?
如果不清楚,我正在尝试循环所有不是我命名工作表的工作表并尝试选择特定范围并将其复制并粘贴到已编译的"Quant Sheet"中
Dim ws As Worksheet
Dim x As Integer
Dim y As Integer
Dim a As Integer
Dim b As Integer
Set ws = Worksheets("Quant Sheet")
x = 1
y = 3
a = 3
b = 2
Worksheets("Quant Sheet").Activate
For Each ws In ActiveWorkbook.Worksheets
If (ws.Name <> "Quant Sheet") Then
ws.Range("A3").Select
Selection.Copy
Sheets("Quant Sheet").Select
Cells(y, 1).Select
ActiveSheet.Paste
y = y + 1
End If
Next ws
Run Code Online (Sandbox Code Playgroud) 我创建了一个接受数组输入的excel UDF.我希望它只允许数组中的偶数个项目.这是代码:(它只是短的所以我会发布所有这些,你可以有一些上下文)
Function SUBSTITUTEMULTI(inputString As String, ParamArray criteria() As Variant) as String
Dim subWhat As String
Dim forWhat As String
Dim x As Single
If UBound(criteria()) Mod 2 = 0 Then
'check whether an even number of arguments is input
MsgBox "You've entered too few arguments for this function", vbExclamation
Else
x = 0
For Each element In criteria
If x = 0 Then
subWhat = element
Else
forWhat = element
inputString = WorksheetFunction.Substitute(inputString, subWhat, forWhat)
End If
x = …Run Code Online (Sandbox Code Playgroud) 接下来我刚才问了一个关于获得一系列不同(但不一定是唯一的)随机数的问题,答案是这样的:
=RANDBETWEEN(ROW(A1:A10)^0,10)
Run Code Online (Sandbox Code Playgroud)
获取1到10之间的10个随机数的数组
如果我使用上面的公式创建一个命名范围(称为"randArray"),我希望我能够多次引用randArray并获得相同的随机数集.当然,每次我按F9或更新工作表时它们都会改变- 但是一起改变.
这就是我得到的,两组完全不同的随机数
我对这种行为并不感到惊讶,但如何在不使用VBA且不将随机数放入工作表的情况下实现这一目标?
此示例旨在成为MCVE.在我的实际情况中,我使用随机数来估计Pi.用户规定要应用多少随机点并获得相应准确的估计.之所以出现这个问题,是因为我还对点进行了绘制,当有少量点时,很清楚地看到估计和图表不代表相同的数据集
更新
我已经将最初的赏金授予@Michael提供了一个有趣且不同的解决方案.我仍然在寻找一个完整的解决方案,允许用户规定使用多少随机点,虽然可能没有完美的答案,但我仍然对任何其他可能的解决方案感兴趣,并且非常乐意进一步提供奖励.
感谢所有迄今为止贡献的人.
我想对一个范围进行平均,但有些单元格是空白的。单元格应保持空白,有没有办法将它们包含在 中AVERAGE?
例如,如果我有 2 个单元格,其中一个为空,另一个为 100,我希望平均值为 50
我怎样才能做到这一点?
如果已经提出并回答了这个问题,我很抱歉,但我找不到满意的答案.
我有一个化学公式列表,按顺序包括:C,H,N和O.我想在每个字母之后提取数字.问题是并非所有公式都包含N.但是,所有公式都包含C,H和O. 并且数字可以是单数,双数或(仅在H的情况下)三位数.
因此数据看起来像这样:
我想在单独的列中列出列表的每个元素编号.所以在第一个例子中它将是:
20 37 1 5
Run Code Online (Sandbox Code Playgroud)
我一直在努力:
=IFERROR(MID(LEFT(A2,FIND("H",A2)-1),FIND("C",A2)+1,LEN(A2)),"")
Run Code Online (Sandbox Code Playgroud)
分离出C#.然而,在此之后我被卡住了,因为H#侧面是O或N.
是否有excel公式或VBA可以做到这一点?
有什么方法可以更新子系统外部的ListBoxa吗?UserFormUserform_Initialize
为什么?
我正在构建一个二十一点游戏,并使用列表框告诉用户他们/庄家拥有哪些牌。我希望使用一个简单的 sub ( ShowCards) 将项目添加到列表框中,但我遇到了问题:
Play按钮调用位于普通模块中的PlayBlackjack子组件
Option Explicit
Dim cards As New Collection
Sub ShowGame()
UFDisplay.Show
End Sub
Sub PlayBlackjack()
'fill the cards collection with 5 shuffled decks
PrepareCards
Dim i As Integer
Dim userHand As New Collection
Dim dealerHand As New Collection
'deal cards (removing the dealt cards from the cards collection)
For i = 1 To 2
DealCard cards, userHand
DealCard cards, dealerHand
Next i
ShowCards userHand, UFDisplay.UserHandList <-- …Run Code Online (Sandbox Code Playgroud) 多单元格数组公式允许您将公式应用于 Excel 中的整个列。例如:
{=B10:B20+C10:C20}
Run Code Online (Sandbox Code Playgroud)
为什么Excel表格中不允许使用多单元格数组公式?在表中,您只能使用单个公式,例如=B10+C10,,,=B11+C11...,但是您可以在行中使用不同的公式。数组公式可以防止这种情况发生。
我有一个需要在另一个工作表中创建命名范围的私有子。它需要保留一个工作表函数,因为它是一个Worksheet_Change子函数。我已经成功地使用此行将范围变量设置为等于另一张纸上的范围:
Set rng2 = Sheets("Lists").Range(Sheets("Lists").Cells(2, Col), Sheets("Lists").Cells(Unique, Col))
Run Code Online (Sandbox Code Playgroud)
但是,当我放入rng2代码的其他部分时,它只是指的是活动表中的正确范围。
这是我尝试过的:
ActiveWorkbook.Names.Add Name:="Level" & Col, RefersTo:= _
"= " & Sheets("Lists").Range(Sheets("Lists").Cells(2, Col), Sheets("Lists").Cells(Unique, Col)).Address & ""
Run Code Online (Sandbox Code Playgroud)
和:
ActiveWorkbook.Names.Add Name:="Level" & Col, RefersTo:= _
"=" & rng2.Address & ""
Run Code Online (Sandbox Code Playgroud)
当底部函数作为一个整体位于存储在工作簿中的模块内时,它起作用,但同样,在工作表子中不起作用。我也在Sheets("Lists").rng2.Address底层尝试中尝试过。
当您查找值时,Scripting.Dictionary喜欢无缘无故地添加值!以30秒的示例演示:
创建一个新的工作表,并填写 A1:A4 = {1,2,3,4}
插入一个新的vba模块并添加此代码
Public Sub test()
Dim rowIndex As Integer
'
Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary
For rowIndex = 1 To 4
dict.Add Trim(Sheet1.Cells(rowIndex, 1).Value), rowIndex
Dim notEvenAddingSoWhyAreYouAdding As Variant
notEvenAddingSoWhyAreYouAdding = dict(Sheet1.Cells(rowIndex, 1).Value)
Next rowIndex
End Sub
Run Code Online (Sandbox Code Playgroud)
设置断点 Next rowIndex
运行子并检查的值dict。现在,它具有两个值"1"和1,如下图所示:
什么。的。地狱?!
我意识到我已经Trim(...)在该dict.Add()行中使用了该函数,这意味着正在使用两个不同的键,但是为什么在执行查找时为什么要添加一个额外的值呢?那毫无意义-现在dict.Count无法提供我所期望的价值。