我有一个脚本,它正在格式化原始数据并将其附加到我打开的分析工作簿的末尾.该脚本从分析工作簿运行,因为每次都会填充RAW数据.
该脚本工作正常,有一个例外,我无法清除其他工作簿上的剪贴板,我怀疑这是由于它在Excel的另一个实例(应用程序)中打开.
Sub Data_Ready_For_Transfer()
Dim wb As Workbook
Dim ws As Worksheet
Dim rnglog As Range
Dim lastrow As Range
Dim logrange As Range
Dim vlastrow As Range
Dim vlastcol As Range
Dim copydata As Range
Dim pastecell As Range
Dim callno As Range
Set wb = GetObject("Book1")
Set ws = wb.Worksheets("Sheet1")
Application.ScreenUpdating = False
'if we get workbook instance then
If Not wb Is Nothing Then
With wb.Worksheets("Sheet1")
DisplayAlerts = False
ScreenUpdating = False
.Cells.RowHeight = …Run Code Online (Sandbox Code Playgroud) 我有一个多对多关系设置并使用我的数据库。这是使用具有名为“linked_by”的额外列的数据透视表。这样做的想法是,我可以跟踪在其他两个表之间创建链接的用户。
下面是尝试的视觉表示:
权限 -> 权限角色 -> 角色
权限角色 -> 人员
Permissions_roles 表有一个附加列名称“linked_by”,我可以使用 ->pivot 方法来获取该列的值。问题是它只返回精确的列值。我已经为此链接到 person.id 定义了一个外键约束,但我无法找到一种方法来从 Laravel Eloquent 模型中查询它。
如何从 Eloquent 查询中查询链接到“linked_by”列的人员姓名?
理想情况下,我希望查询类似于:
permissions::find(1)->roles->first()->pivot->linked_by->name;
Run Code Online (Sandbox Code Playgroud)
但是,由于我还没有为这个数据透视表列定义雄辩的关系,所以我无法做到这一点,但我无法弄清楚如果可能的话我将如何做到这一点?
执行此操作的唯一方法是:
$linkee = permissions::find(1)->roles->first()->pivot->linked_by;
$person = person::find($linkee);
$person->name;
Run Code Online (Sandbox Code Playgroud) 我在名为"电子邮件"的工作表中的列A中有一个名称列表
我想用名称列A填充userform ListBox.但是,我无法指定固定范围,因为此列表将增长和缩小.那么如何让userform使用正确数量的项目填充列表?
这是我目前正在尝试但不起作用(我相信这里有些人会明白为什么不这样做),我也看到了另一个使用简单For循环的例子,但我无法再找到这个例子给你看.
Private Sub UserForm_Initialize()
Dim rngName As Range
Dim rng1 As Range
Dim rng2 As Range
Dim ws As Worksheet
Set ws = Worksheets("Email")
Set rngName = ws.Range("A:A").Find(What:="*", LookAt:=xlWhole, MatchCase:=False, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Set rng1 = ws.Range("A1")
On Error GoTo ErrorHandle
Me.lbUsed.List = Range(rng1 & ":" & rngName).Value
ErrorHandle:
End Sub
Run Code Online (Sandbox Code Playgroud)
我现在有以下代码,但是当我加载userform时它无法工作:
Private Sub UserForm_Initialize()
Dim rngName As Range
Dim rng1 As Range
Set rngName = Worksheets("Email").Range("A:A").Cells.Find(What:="*", LookAt:=xlWhole, MatchCase:=False, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Set rng1 = Worksheets("Email").Range("A1:" & rngName.Address) …Run Code Online (Sandbox Code Playgroud) 目的是让我的应用程序向 Redis 队列发送潜在的大量电子邮件(该位正在工作),然后 Redis 将这些处理限制为每选定的分钟数只发送一定数量的电子邮件。
对于此示例,我有一个将时间附加到文件的测试作业,我试图将其限制为每 60 秒一次。
到目前为止,我有应用程序成功地将 50 个作业的测试量推送到 Redis 队列。我可以登录到 Horizon 并在“processjob”队列中看到这 50 个作业。我也可以登录redis-cli,在列表键“queues:processjob”下看到50个集合。
我的问题是,一旦我尝试打开油门,只有 1 个作业运行,其余作业失败并出现以下错误:
Predis\Response\ServerException: ERR Error running script (call to f_29cc07bd431ccbf64637e5dcb60484560fdfa2da): @user_script:10: WRONGTYPE 对 /var/www/html/smhub/vendor/predis/ 中持有错误类型值的键的操作客户端.php:370
如果我取消节流阀,所有工作文件和 5 个作业都会立即运行。
我想也许这是不正确的键名,但如果我更改以下内容:
public function handle()
{
//
Redis::throttle('queues:processjob')->allow(1)->every(60)->then(function(){
Storage::disk('local')->append('testFile.txt',date("Y-m-d H:i:s"));
}, function (){
return $this->release(10);
});
}
Run Code Online (Sandbox Code Playgroud)
对此:
public function handle()
{
//
Redis::funnel('queues:processjob')->limit(1)->then(function(){
Storage::disk('local')->append('testFile.txt',date("Y-m-d H:i:s"));
}, function (){
return $this->release(10);
});
}
Run Code Online (Sandbox Code Playgroud)
然后一切正常。
有人告诉我,问题在于 redis 键的类型是“列表”,并且作业都在一个列表下。话虽如此,如果它不能以这种方式工作,我们将如何节流队列,因为节流需要一个唯一的键。
excel ×2
excel-vba ×2
laravel ×2
vba ×2
eloquent ×1
laravel-5.5 ×1
listbox ×1
listboxitem ×1
pivot ×1
redis ×1
throttling ×1