如果/ ElseIf语句仅适用于第一个if语句

时间:2018-04-20 17:59:22

标签: vba loops if-statement charts

我的If(ElseIf)语句似乎只适用于第一个If语句。我不确定我在这里缺少什么。这适用于需要根据单元格值C3:D11更改的边界的图表。该图表基本上是两个重叠的图形,这就是为什么我有一个次轴值。在IfElse部分期间,两个轴都需要更改。

{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.Aeson
import qualified Data.ByteString.Lazy as LBS
import System.Environment

data Observation = Observation { ident    :: Integer
                               , value    :: Integer
                               , filename :: FilePath
                               } deriving (Show)

instance FromJSON (FilePath -> Observation) where
  parseJSON (Object v) =
    do i <- read <$> v .: "id"
       l <- v .: "value"
       pure $ Observation i l

main :: IO ()
main = do
  files <- getArgs
  fileContents <- traverse LBS.readFile files
  print fileContents
  let fs = map (maybe (error "Invalid json") id . decode) fileContents
      jsons :: [Observation]
      jsons = zipWith ($) fs files
  print jsons

谢谢!

1 个答案:

答案 0 :(得分:2)

很简单,你的if else陈述是错误的。

-20它低于-15所以它总是做第一个If里面的东西。

您应该执行以下操作:

If cell.Value < -15 And cell.Value > -20 Then
    cht.Axes(xlCategory).MinimumScale = -20
    cht.Axes(xlValue, xlSecondary).MinimumScale = -20
ElseIf cell.Value < -20 And cell.Value > -30 Then
    //do stuff here

你继续那样。你应该对正值做同样的事情,我认为你没有考虑值-20,-30等(因为你排除它们)。