我目前正在编写一个名为eformless
我已经使用CRA创建了一个名为 的目录sandbox,我在其中链接了包。
当尝试使用我正在尝试测试的链接包启动沙箱反应应用程序时,我不断收到以下错误:
\n// inside my \'sandbox\' App.tsx\nimport React from \'react\'\nimport { useField } from \'eformless\'\n\nconst App = () => {\n const [test, handleChange] = useField(\'testing\')\n return (\n <input type="text" value={test.value} onChange={handleChange} />\n )\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。发生这种情况可能是由于以下原因之一:
\n\n
\n- 您的 React 和渲染器版本可能不匹配(例如 React DOM)
\n- 你可能违反了 Hooks 规则
\n- 您可能在同一应用中拥有多个 React 副本\n请参阅因 stackoverflow ToS 而更改的链接,了解有关如何调试和修复此问题的提示。
\n
这个问题似乎指向我的库,我在其中编写了一个自定义钩子,该钩子使用从 React …
我找到了这段代码,并认为如果我只需要从一个封闭的表中提取一个值,那么使用它可能会很好.
strInfoCell = "'" & strPath & "[" & strFile & "]Sheet1'!R3C3"
myvalue = ExecuteExcel4Macro(strInfoCell)
Run Code Online (Sandbox Code Playgroud)
当我运行此代码,我得到一个值strinfocell的
'C:\Users\my.name\Desktop[QOS DGL stuff.xlsx]Sheet1'!R3C3
但是当我运行代码时会弹出一个对话框,显示带有" QOS DGL suff"显示的桌面文件.
造成这种情况的原因是什么,不仅仅是按预期撤回数据?
我知道路径和文件名是正确的,因为如果我从调试输出中复制它们并将它们粘贴到start>>run那么打开正确的工作表.
我知道Sheet1(名为:) ACL,确实有价值cells(3,3)
当我单击任务然后单击“日志”按钮时,它不显示任何内容
但是,我已经编辑了配置文件以将它们存储在特定的地方。
base_log_folder = /var/log/airflow
并且在 UI 中它特别指出该任务的日志在/var/log/airflow/solr-mentions-cleanups/run-solr-mentions-cleanups-1/2019-02-19T10:46:01.283247+00:00.log,但实际上该日志不存在。
我希望如果我在配置文件中指定了一个路径,那么日志应该就在那里。不确定还有哪些其他可配置的东西。
我目前正在使用代码来更新文件,其中循环运行多个工作表。到目前为止,代码运行顺利。在今天的运行中,我遇到了“运行时错误'-2147319767(80028029)'自动化错误,无效的前向引用,或未编译类型的引用。”
错误发生在线路上,Workbooks("Upload.xlsm").Worksheets(branchName).Range("C7").PasteSpecial Paste:=xlPasteValues并在循环的第 6 次迭代中出现。
我用作On Error Resume Next完成运行的临时措施,因为当时必须完成它。
完成后,有 3 次迭代失败(第六次、第七次和第十次)。这三者彼此之间没有相关性(即不同的复制源、值等),但具有完全相同的复制源/值的其他迭代成功完成。
稍后在这些工作表上运行另一个复制命令会导致相同的错误。我最终不得不删除并重新创建工作表来解决错误。
' Uploads file update
fpath = Workbooks("TEG Rates.xlsm").Worksheets("Link List").Range("E3").Value
Workbooks.Open fpath & "Upload.xlsm"
For branchNo = 21 To 37
branchName = Workbooks("TEG Rates.xlsm").Worksheets("Link List").Range("A" & branchNo).Value
branchGroup = Workbooks("TEG Rates.xlsm").Worksheets("Link List").Range("B" & branchNo).Value
' Copy/Paste Buy & Sell
Workbooks("TEG Rates.xlsm").Worksheets(branchGroup).Range("D7:G111").Copy
Workbooks("Upload.xlsm").Worksheets(branchName).Range("C7").PasteSpecial Paste:=xlPasteValues
For no = 7 To 10
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D" & no).Value = "=ROUND(100/C" & no & ",6)"
Next no
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D14").Value = "=ROUND(100/C14,6)"
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D15").Value …Run Code Online (Sandbox Code Playgroud) 我一直试图DEC_MAX在vba中创建类似于常量的东西.
问题是,它有点棘手,因为没有Decimal数据类型!
最接近有效十进制的CDec()函数是定义的函数:
将Decimal数据值返回到Decimal,该值是Expression被Let-coerced为Decimal的结果
很自然地,我认为任何潜在的过度价值都会被合并到最大可实现的价值Decimal.我尝试从MSDN文档中插入max Decimal vb.net值
但是请注意这一点,因为尝试这样做会导致溢出:
那么如何在这里计算最接近的十进制最大值?我试过这个"计算机砖"丑陋的代码循环:
Private Sub brick_my_Excel()
On Error Resume Next
x = 79228162514264337593543950335 'let's let it auto-coerce i guess
Do
Debug.Print(x)
x = x - 1
Loop
End Sub
Run Code Online (Sandbox Code Playgroud)
然而,这完全抑制了溢出,以几乎像字符串的方式打印x而不太注意计算.
所以,
CDec()函数的最大可能表达式是什么?关于更多理论目的的问题:
在vba/excel-vba中复制粘贴数据的"正确"方法是什么?
现在,至少据我所知,这三种是唯一可用的方法:
Range) .Copy([Destination])方法Worksheet) .Paste([Destination, Link])方法Range) .PasteSpecial([Paste], [Operation], [SkipBlanks], [Transpose])方法现在,我做了我的研究,这些都是利弊的.Copy([Destination]) 和.Paste([Destination, Link])方法,至少那些,我能想到的:
+优点:
- 允许我们将数据粘贴到与复制相同的表达式中(代码可读性我猜...?)
和:
-缺点:
- 细胞参考是完全没有去!
- 你的格式和公式可能搞砸了
- 如果范围重叠,它将显示一个提示,有效地阻止宏死在它的轨道上 (这是一个巨大的无赖,特别是如果你试图自动化的东西)
- 更糟糕的是,如果按下
Cancel提示,它将抛出Error**(除非处理)
在硬币的另一边, .PasteSpecial()
+优点:
PasteSpecial()允许我们粘贴范围的特定部分!- 它允许我们指定我们想要做什么类型的粘贴
- 有一个内置的
skipBlanks和transpose功能- 不是"所以" - 不是
Error!
我努力想出任何一个,但是:
-缺点:
- 要写更多的字符..?
现在,这让我相信,方法的Destination论点.Copy()应该基本上被忽略,而PasteSpecial() …
我有以下功能:
async typewrite(what, where){}- 模拟某人输入文本
async typeerase(where){}- 类似于打字,但模拟某人按退格键
typetimer(){}- 返回一个承诺,随机间隔来模拟打字速度.
基本上,我想要做的是在typewrite函数完成后,我想在一小段延迟后擦除文本.我试图人为地推迟它setTimeout,但这似乎不起作用.
以下代码按预期工作
typewrite('Hello world!', target).then(erase => typeerase(target));
let typetimer = (fmin, fmax) => (
new Promise(res => setTimeout(res, Math.floor(Math.random() * (fmax - fmin + 1)) + fmin))
);
const textarea = document.getElementById('textarea');
async function typewrite(what, where){
let current_text = '';
const typespeed_min = 50;
const typespeed_max = 150;
for (let i = 0; i < what.length; i++){
await typetimer(typespeed_min, typespeed_max);
current_text += what.charAt(i); …Run Code Online (Sandbox Code Playgroud)宏记录器生成以下语句:
Cells.Select
Run Code Online (Sandbox Code Playgroud)
现在我明白,如果没有对象限定符,这将返回所有单元格作为Range对象.
但是,我想知道这个陈述的完全限定版本是什么?
是吗:
Application.Cells.Select Application.ActiveSheet.Cells Application.ActiveWorkbook.ActiveSheet.Cells换句话说,VBE在运行时实际执行了哪一个完全限定的语句Cells.Select?
所有这些之间的区别是什么?因为所有这些最终都访问了同一个对象 - 如果我想明确限定所有对象,那么我会使用哪个语句来个人偏好?
非常感谢!
我最近开始学习reactjs,偶然发现了这段代码:
handleChange = event => {
const { name, value } = event.target
this.setState({
[name]: value,
})
}
Run Code Online (Sandbox Code Playgroud)
我有些困惑,尤其是与以下符号:
[name]: value,
Run Code Online (Sandbox Code Playgroud)
有什么[ ]用?
我了解,const = { name, value } = event.target用来将对象破坏为属性,但是这种[name]表示法似乎很奇怪,而且我在任何JavaScript编码中都没有看到过对此的引用。
尽管我尽最大努力进行谷歌搜索[] javascript usage 和类似操作,但是我找不到类似的东西。
我最好的猜测是与object["property"]表达的相似性,但与之 相比,这似乎仍然有些奇怪。
excel ×5
vba ×5
excel-vba ×3
javascript ×2
reactjs ×2
airflow ×1
async-await ×1
asynchronous ×1
cells ×1
copy-paste ×1
es6-promise ×1
exception ×1
flutter ×1
limit ×1
node.js ×1
npm ×1
npm-link ×1
performance ×1
promise ×1
typescript ×1
vbe ×1