小编Dav*_*ard的帖子

用于检查工作表是否存在的函数的VBA错误处理

我有一个函数,它将添加一个工作表并重命名它,但首先检查是否已存在该名称的工作表.要做到这一点,我在这里使用相当广泛的功能 -

Function WorksheetExists(ByVal WorksheetName As String) As Boolean

    On Error Resume Next ' Set to Resume Next as don't want to end macro if this fails
    WorksheetExists = (Sheets(WorksheetName).Name <> "")
    On Error GoTo 0

End Function
Run Code Online (Sandbox Code Playgroud)

我的问题是我已经设置On Error GoTo error_exit了调用此函数的父子,因此On Error GoTo 0在检查表单是否存在之后会调用该调用.

我试过On Error GoTo error_exit这个函数,但是我得到以下错误 -

Complie错误:标签未定义

有谁知道如何解决这个问题?

error-handling vba

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

单击按钮时将文本插入<textarea>,光标位于该位置

<textarea>在它下面有几个按钮,这些按钮的目的是将某些文本插入到<textarea>.

下面的代码将始终在开头插入所需的文本,<textarea>如果在单击按钮时没有焦点,则可以正常使用.但是,如果<textarea>确实有焦点,我想在单击按钮时插入光标所在的文本.

到目前为止,这是我的代码.如果有人可以建议我如何做到这一点,我将非常感激.谢谢.

jQuery(document).ready(function(){

    var button_text = {} // The text to insert for each button click

    button_text['insert_event_name']        = 'event_name';
    button_text['insert_event_date']        = 'event_date';
    button_text['insert_event_start_time']  = 'event_start';
    button_text['insert_event_finish_time'] = 'event_finish';
    button_text['insert_event_location']    = 'event_location';
    button_text['insert_event_address']     = 'event_address';

    jQuery('.inserter', '#event-desc-container').on('click', function(){

        var button = jQuery(this).attr('name');
        var text = '['+button_text[button]+']';

        textarea = jQuery('textarea#event_desc', '#event-desc-container');
        desc = textarea.val()

        textarea.val(text+desc);

    });

});
Run Code Online (Sandbox Code Playgroud)

javascript textarea cursor

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

从父类调用子方法

我有一个类被其他几个类用作扩展器,在一个实例中,父类的方法需要从子类回调一个方法.有办法做到这一点吗?

我意识到PHP包含abstract类和函数,但是要求每个子类都具有声明的abstract函数,在这种情况下我不需要.

例如(这些是例子,而不是现实生活) -

Class parent{

    function on_save_changes(){

        some_parent_function();

        if($_POST['condition'] === 'A') :
            // Call 'child_1_action()'
        elseif($_POST['condition'] === 'B') :
            // Call 'child_2_action()'
        endif       

        some_other_parent_function();

    }

    function some_parent_function(){
        // Do something here, required by multiple child Classes
    }

}

Class child_1 Extends parent{

    function __construct(){
        $this->on_save_changes();
    }

    function child_1_action(){
        // Do something here, only every required by this child Class
    }

}

Class child_2 Extends parent{

    function __construct(){
        $this->on_save_changes();
    }

    function child_2_action(){
        // Do …
Run Code Online (Sandbox Code Playgroud)

php class

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

在bash中返回RegEx匹配

使用bash,我可以检查变量的值是否与正则表达式匹配.但是,我找不到返回匹配部分的方法.这可能吗?

例如$test,test="123456-name-goes-here.1.2.3-something.zip" 我想回归的部分是1.2.3-something.

使用下面的代码,我可以成功匹配$test,但我不知道从哪里开始.

[[ $test =~ ([0-9]\.[0-9](\.[0-9])?(\.[0-9])?)(-[a-z-]*)? ]] && echo "matched"
Run Code Online (Sandbox Code Playgroud)

regex bash

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

使用策略模板中的URL模板参数值

在API Management中,如何通过策略访问URL模板参数?

在这个例子中,我的操作被调用test,HTML动词是GET,而URL模板如下 -

/测试/ {variable_name1}/{variable_name2}

我的印象是访问参数的值非常简单{variable_name1}.但是,下面的示例未按预期设置变量"rowkey".相反,它有一个值{variable_name1}-{variable_name2}.

我在这做错了什么?

<policies>
    <inbound>
        <set-variable name="rowkey" value="{variable_name1}-{variable_name2}" />
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <set-header name="Row-Key" exists-action="override">
            <value>@((string)context.Variables["rowkey"])</value>
        </set-header>
    </outbound>
</policies>
Run Code Online (Sandbox Code Playgroud)

azure-api-management

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

.append导致IE错误

我有以下代码,在FF中工作正常,但.append()函数s在IE中发生错误.是否有人能够告诉我我的代码是否有任何问题,或者这是否是IE问题?

目的是为表单添加一个隐藏字段(根据用户点击的内容而不同),然后我提交表单.

$(function(){

    $('a.js-make-profile-image').click(function(){
        $('.append-here').append('<input type="hidden" name="action-type" value="profile-image" />');
        document.forms['attachment-action-form'].submit();
    });

});
Run Code Online (Sandbox Code Playgroud)

IE调试器给出了错误Unexpected call to method or property access,调试器在jQuery中强调了这个文本 - this.nodeType===1&&this.appendChild(a).

jquery append

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

如何获得快捷方式的"目标类型"

我想删除桌面文件夹中的所有快捷方式,并确保添加一组干净的shorcuts.

但是,我需要保持shorcuts映射驱动器.如果查看"属性"的"快捷方式"选项卡,可以看到此类型的快捷方式具有Target type"文件夹".

问题是,我找不到通过VBS访问目标类型的任何方法.我可以得到type(objFile.Type),但是它会Type of file在'General'选项卡上显示(在本例中为'Shortcut').

有没有人知道一种访问方式Target type?谢谢.

For Each objFile in objFolder.Files

    ' Check that the file 'Target type' is not 'File Folder'
    If Not objFile.Type = "File Folder" Then
        objFSO.DeleteFile(desktop_locations(i) & objFile.Name)
    End If

Next
Run Code Online (Sandbox Code Playgroud)

vbscript

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

从ISO 8601持续时间获取DateTime对象

在PowerShell中,是否可以将ISO 8601指定持续时间转换 DateTime对象?例如,PT30M是30分钟前,所以如果现在是2019-07-31 17:00:00我想要的时间戳记2019-07-31 16:30:00

我已经尝试过显而易见的-

"PT30M" | Get-Date
Run Code Online (Sandbox Code Playgroud)

但这(毫不奇怪地失败了)

Get-Date:输入对象不能绑定到该命令的任何参数,因为该命令不接受管道输入,或者该输入及其属性与接受管道输入的任何参数都不匹配。

我的下一个想法是编写一个将提取天,小时和分钟的函数(例如,最多最多30天)。为此,下面的函数可以$startTime根据$Duration传入的内容工作并创建。

但是,感觉有点不对劲。首先,正则表达式只非常具体地检查几天,几分钟和几小时,而其余的$Duration可能完全是垃圾。其次,一旦考虑到诸如秒,周和月之类的事情,那将很麻烦。

是否有内置的方法来执行此操作,还是在最佳选项下坚持使用该功能?

function Get-TimespanFromDuration
{
    param(
        [Parameter(Mandatory)]
        [string]$Duration
    )

    $now = (Get-Date).ToUniversalTime()
    $dataTimeAgo = @{ "Days" = 0; "Hours" = 0; "Minutes" = 0 }

    ### Work out how may days ago.
    $daysAgo = $Duration -match "\D([1-9]|[1-2][0-9]|30)D"
    if ($daysAgo)
    {
        [int]$dataTimeAgo["Days"] = $matches[0] -replace "\D+"
    }

    ### Work out how may …
Run Code Online (Sandbox Code Playgroud)

powershell datetime timespan iso8601

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

更新 Azure DevOps 版本的变量组快照

我有一个 Azure DevOps 发布管道,它引用多个变量组,发布中的每个阶段都链接到不同的组。

当我第一次部署到某个阶段时,无法知道该变量组所需的值之一(函数应用程序上函数的键)。但是,某些需要完成的部署后检查是必需的。

这并不理想,但我认为我能够进行部署,让它失败,更新变量组,然后重试。这是基于编辑版本时的以下声明 -

您可以编辑批准、任务和变量

但是,似乎如果您编辑变量组,则无法将更新的值拉入版本中。这意味着我可以完成部署的唯一方法是创建第二个版本。

我真的希望我错过了一些东西,因为其他工具(例如八达通)提供了开箱即用的此功能。是否可以更新版本的变量组快照?

variables azure-devops

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

Azure DevOps 在不工作的情况下使用输出变量暂存依赖项

我有一个 Azure DevOps 管道,其中一个阶段依赖于另外两个阶段。如果以下两项都为真,则此阶段应有条件地运行 -

  • 阶段 1 (Deploy_BVT_UKS_Internal) 在其中一项作业中设置具有特定值的输出变量。
  • 第 2 阶段 (Test_BVT) 失败或被跳过。

这是我正在使用的条件。但是,它不起作用,并且当我期望它运行时会跳过该阶段。检查输出变量值的语法取自文档

condition: >-
  and(
    in(dependencies.Test_BVT.result, 'Skipped', 'Failed'),
    eq(dependencies.Deploy_BVT_UKS_Internal.outputs['Swap_Slots.Output_Slot_Swap_Success_Variable.slotSwapped'], 'true')
  )
Run Code Online (Sandbox Code Playgroud)

为了确认,我按如下方式格式化输出变量检查 -

dependencies.<stageName>.outputs['<jobName>.<taskName>.<variableName>']
Run Code Online (Sandbox Code Playgroud)

如果我只是in(dependencies.Test_BVT.result, 'Skipped', 'Failed')用作我的条件,那么如果Test_BVT跳过或失败阶段,则阶段会运行。所以这表明输出变量检查是问题所在,尽管我不能因为日志似乎不再显示如何评估条件。

令人困惑的是,相同的文档显示了以两种不同方式格式化的阶段依赖关系,因此我添加了一个任务来使用两种格式写入输出变量的值。使用的格式stageDependencies产生预期结果,证明输出变量按预期设置。但是,使用的格式dependencies不起作用。

- job: test
  variables:
    one: $[dependencies.Deploy_BVT_UKS_Internal.outputs['Swap_Slots.Output_Slot_Swap_Success_Variable.slotSwapped']]
    two: $[stageDependencies.Deploy_BVT_UKS_Internal.Swap_Slots.outputs['Output_Slot_Swap_Success_Variable.slotSwapped']]
  steps:
  - script: |
      echo $(one)
      echo $(two)
    displayName: Output SlotSwapped Value
Run Code Online (Sandbox Code Playgroud)

我确实stageDependencies在我的情况下尝试过这种格式,以防万一,但这也失败了。

我在这里遗漏了什么,或者这只是没有按照记录工作?

yaml azure-devops azure-pipelines

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