我的代码应该通过一个表来检查它的任何单元格是否包含" T1"。此表中所有单元格的格式为文本。
如果找到带有" T1"在其中,它将对其他表中的单元格执行操作。特别是,它为function gridcounttest
load refxy
x = refxy(:,1);
y = refxy(:,2);
v1 = refxy(:,3);
nBinsX = 14 ;
nBinsY = 18 ;
xg = linspace( 0, 700, nBinsX+1 ) ;
yg = linspace( 0, 900, nBinsY+1 ) ;
nCells = nBinsX * nBinsY ;
xId = sum( bsxfun( @ge, x, xg(1:end-1) ), 2 ) ;
yId = sum( bsxfun( @ge, y, yg(1:end-1) ), 2 ) ;
cellId = nBinsY * (xId - 1) + yId ;
blockNums_v1 = accumarray( cellId, 1, [nCells, 1] )
blockSum_v1 = accumarray( cellId, v1, [nCells, 1] )
blockMean_v2 = accumarray( cellId, v1, [nCells, 1], @mean )
分配cells(i, 8)
的值,两者都是数字格式,并为cells(i-18, j)
分配值cells(i,9)
,两者都是日期。
当我执行代码时,它使cells(k2, j)
等于cells(i,8)
并且不会对0
执行任何操作。
有人可以更正此代码吗?
cells(i,9)
答案 0 :(得分:0)
您实际上是将布尔比较的结果放入Cells(i, 8)
;例如是单元格(i,8)等于单元格(i-18,j),单元格(i,9)等于单元格(k2,j)。
Select Case Cells(k, j).Value
Case "T1", "T1, T2", "T2, T1", "T1, T3", "T3, T1", "T1, T2, T3", "T1, T3, T2", "T2, T1, T3", "T2, T3, T1", "T3, T1, T2", "T3, T2, T1"
Cells(i, 8) = Cells(i - 18, j)
Cells(i, 9) = Cells(k2, j)
End Select
如果您认为绝对必须将两个单元格值分配放在同一行(您不会因为化妆品以外的任何原因),请用冒号分隔。
Select Case Cells(k, j).Value
Case "T1", "T1, T2", "T2, T1", "T1, T3", "T3, T1", "T1, T2, T3", "T1, T3, T2", "T2, T1, T3", "T2, T3, T1", "T3, T1, T2", "T3, T2, T1"
Cells(i, 8) = Cells(i - 18, j): Cells(i, 9) = Cells(k2, j)
End Select