screenshotPath = "D:\666" & FormatDateTime(Now(), “yyyyMMdd_HHmmss”) & "" & “screenshot.png” ’运行脚本时显示类型不配‘[string:“yyyyMMdd_HHmmss.png”]’
时间: 2024-09-24 09:14:56 浏览: 38
这个错误提示意味着你在尝试将几种不同的数据类型组合在一起创建一个字符串,但在VBA(Visual Basic for Applications)或其他类似环境中,它们不能直接拼接。`screenshotPath`变量似乎包含了路径名、当前日期时间、特定的文本和文件扩展名。其中:
- `D:\666` 是一个字符串。
- `FormatDateTime(Now(), “yyyyMMdd_HHmmss")` 返回的是一个字符串,表示当前日期和时间。
- `` 是空字符串。
- `"screenshot.png"` 是另一个字符串。
然而,在字符串连接操作中,`&` 运算符期望所有参与运算的都是字符串。现在,`Now()` 函数返回的是一个日期对象,所以当你试图直接用 `&` 连接它和前面的字符串时,会报类型不匹配的错误。
解决这个问题,你需要先将 `FormatDateTime(Now(), “yyyyMMdd_HHmmss")` 的结果转换成字符串。这通常通过添加 `.ToString()` 方法来完成,比如:
```vba
screenshotPath = "D:\666" & FormatDateTime(Now(), "yyyyMMdd_HHmmss").ToString() & ".png"
```
这样就保证了所有的部分都被正确地合并成一个字符串,并避免了类型不匹配的错误。
相关问题
Rectangle{ width: parent.width height: 120/2 anchors.bottom: parent.bottom color: "#114670" Row{ width: childrenRect.width spacing: 5 CusLabel{ id:dateTimeLabel text: "筛选时间" font.pixelSize: 16 anchors.verticalCenter: dateInput.verticalCenter } CusInputDate{ id:dateInput height: 20 normalTextColor: CusConfig.themeColor selectTextColor: CusConfig.pageBkgColor beginDate: __minDate endDate: new Date() endTime: Qt.formatDateTime(new Date(),"hh:mm:ss") Component.onCompleted: { __minDate= new Date("2020/01/01") __maxDate= new Date() } } } } 这段代码中将时间筛选两个日期分为两行
可以将 `Row` 换成 `Column`,这样就可以将两个控件分开放在不同的行了,代码修改如下:
```
Rectangle{
width: parent.width
height: 120/2
anchors.bottom: parent.bottom
color: "#114670"
Column{
width: childrenRect.width
spacing: 5
CusLabel{
id:dateTimeLabel
text: "筛选时间"
font.pixelSize: 16
anchors.horizontalCenter: parent.horizontalCenter
}
CusInputDate{
id:dateInput
height: 20
normalTextColor: CusConfig.themeColor
selectTextColor: CusConfig.pageBkgColor
beginDate: __minDate
endDate: new Date()
endTime: Qt.formatDateTime(new Date(),"hh:mm:ss")
Component.onCompleted: {
__minDate= new Date("2020/01/01")
__maxDate= new Date()
}
}
}
}
```
Row{ width: childrenRect.width spacing: 5 CusLabel{ id:dateTimeLabel text: "筛选时间" font.pixelSize: 16 anchors.verticalCenter: dateInput.verticalCenter } CusInputDate{ id:dateInput height: 20 normalTextColor: CusConfig.themeColor selectTextColor: CusConfig.pageBkgColor beginDate: __minDate endDate: new Date() endTime: Qt.formatDateTime(new Date(),"hh:mm:ss") Component.onCompleted: { __minDate= new Date("2020/01/01") __maxDate= new Date() } } } } 这段代码中将时间筛选两个日期分为3行显示
这段代码中并没有将时间筛选两个日期分为3行显示,而是将它们放在一个Row中并用两个子组件显示。第一个子组件是一个CusLabel,用于显示"筛选时间"这个文本,第二个子组件是一个CusInputDate,用于显示日期的输入框。这两个子组件之间的间距为5。所以整个Row的高度只有两个子组件的高度加上间距。
阅读全文