Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如果…;然后是修正角度测量值的语句_Excel_Vba - Fatal编程技术网

Excel 如果…;然后是修正角度测量值的语句

Excel 如果…;然后是修正角度测量值的语句,excel,vba,Excel,Vba,我正在尝试自动执行一个脚本,该脚本自动将角度方向测量值校正到0-360范围内。但每次运行代码时,都会出现运行时错误13类型不匹配。当我要求调试时,它会突出显示函数的Then部分,但我不知道它具体希望我更改什么 Dim k As Integer For k = 4 To 1004 If Cells(k, 5).Value > 360 Then Cells(k, 5).Value = Cells(k, 5).Value - 360 If Cells(k, 5).Val

我正在尝试自动执行一个脚本,该脚本自动将角度方向测量值校正到0-360范围内。但每次运行代码时,都会出现运行时错误13类型不匹配。当我要求调试时,它会突出显示函数的Then部分,但我不知道它具体希望我更改什么

 Dim k As Integer
    For k = 4 To 1004
    If Cells(k, 5).Value > 360 Then Cells(k, 5).Value = Cells(k, 5).Value - 360
    If Cells(k, 5).Value < 0 Then Cells(k, 5).Value = Cells(k, 5).Value + 360
Next k
Dim k为整数
对于k=4到1004
如果单元格(k,5).Value>360,则单元格(k,5).Value=单元格(k,5).Value-360
如果单元格(k,5)。值<0,则单元格(k,5)。值=单元格(k,5)。值+360
下一个k

您可以使用Abs和Mod进行修正

Dim k As Integer
For k = 4 To 1004
    Cells(k, 5).Value = Abs(Cells(k, 5).Value Mod 360)
Next k
如果-15°应为345°而不是15°,则

Dim k As Integer
For k = 4 To 1004
    Cells(k, 5).Value = Abs(Cells(k, 5).Value Mod 360 - (Cells(k, 5).Value < 0) * 360)
Next k
Dim k为整数
对于k=4到1004
单元格(k,5)。值=绝对值(单元格(k,5)。值模360-(单元格(k,5)。值<0)*360)
下一个k

单元格出错时的值是多少?可能不是一个数字。你试过
Mod
操作符吗?我认为IF-THEN函数会更好,因为大多数测量值都在0-360范围内,所以我只需要对那些超出范围的值进行校正。该列的所有值都是数字